<?php
/**
* Return the element key for a found pattern in an array
*
* @param String pattern
* @param Array input
* @return mixed
*/
function preg_array_key( $sPattern, $aInput ){
return key( preg_grep( $sPattern, $aInput ) );
}
?>
preg_grep
(PHP 4, PHP 5)
preg_grep — 패턴 매치한 부분의 배열을 반환
설명
array preg_grep
( string $pattern
, array $input
[, int $flags
] )
input 배열에서 주어진 pattern 에 매치한 원소를 포함하는 배열을 반환합니다.
인수
- pattern
-
검색할 패턴 문자열.
- input
-
입력 배열.
- flags
-
PREG_GREP_INVERT를 설정하면, 입력 배열에서 주어진 pattern 에 매치하지 않는 원소를 반환합니다.
반환값
input 배열의 키를 사용한 배열을 반환합니다.
변경점
| 버전 | 설명 |
|---|---|
| 4.2.0 | flags 인수 추가. |
| 4.0.4 |
이 버전 이전에는, 반환하는 배열의 키가 input 배열과 관련이 없었습니다. 예전 동작을 실행하려면, 반환된 배열에 array_values()를 사용하여 값을 다시 정렬하십시오. |
예제
Example #1 preg_grep() 예제
<?php
// 부동소수점 수를 포함하는
// 모든 배열 원소를 반환합니다
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>
preg_grep
pete dakin at aargh dot doh!
20-Nov-2008 03:24
20-Nov-2008 03:24
brian at cristina dot org
02-Sep-2008 08:31
02-Sep-2008 08:31
I don't see it mentioned here but you can invert your match to only return array entries where the search values IS NOT found. The format for it is...
<?php
$nomatch = preg_grep("/{$keyword}/i",$array,PREG_GREP_INVERT);
?>
Notice the PREG_GREP_INVERT.
That will result in an array ($nomatch) that contains all entries of $array where $keyword IS NOT found.
Hope that helps!
-b
