2012-03-17 2 views
0

Google과 PHP 문서를 검색했지만 아직 해결 방법을 찾지 못했습니다. 예 : 나는 내가 찾고 있어요 무엇을하는 키에 가장 가까운 결정하기 위해 배열의 모든 키에 않는 strstr()를 수행 할 랬 같은 것을 :PHP에서 배열 키 선택

for($i=0;$i<count($array);$i++) { 
    if(@strstr(key($array[$i]), "$search")) { 
    print "Found: ". key($array[$i]). "<br>"; 
    } 
} 

"키 ($ 배열 [$ I]) "는 strstr()을 수행하기 위해 배열 키를 요소로 선택하는 데 필요한 함수 나 수단을 나타내는 자리 표시 자입니다.

모든 도움을 진심으로 감사드립니다.

답변

1
foreach ($array as $key => $value) 
{ 
    if(strstr($key, $search)) 
    { 
     print "Found: ". $key. "<br>"; 
    } 
} 
2

사용 foreach는키, 값 쌍을 반복합니다.

당신이

array_keys을 사용할 수 있습니다 - 모든 키 또는 배열

의 키의 하위 집합을 반환 :

foreach($array as $key=>$value) { 
    if(@strstr($key, "$search")) { 
    print "Found: ". $key. "<br>"; 
    } 
} 

더 많은 참조 : http://php.net/manual/en/control-structures.foreach.php

업데이트 댓글이 대답

http://php.net/manual/en/function.array-keys.php

+0

고마워요! 호기심의 대신에 for 루프를 통해이를 수행하는 방법이 있습니까? – user784446

+0

@ user784446 업데이트 된 답변보기 – Pheonix

1

이 그것을 할 것입니다 ...

$found = array_filter(
        array_keys($array), 
        function($key) use ($search) { 
         return strpos($key, $search) !== FALSE; 
        }); 

CodePad.

$found$search에 포함 된 하위 문자열을 포함하는 모든 키의 배열입니다.

다른 문자열 안에 문자열이 있는지 단순히 찾고있는 경우 strpos()을 사용하십시오.

+1

@Basti Way ahead of you :) – alex

0

또 다른 옵션은 한 번에 원하는 키를 꺼내는 것입니다 (예 : preg_grep()을 사용하십시오.

$keys = preg_grep('/'.preg_quote($search, '/').'/', array_keys($array)); 

foreach ($keys as $key) { 
    echo "Found $key<br>"; 
}