2014-01-21 4 views
-2

아래 배열을 검색하려고합니다. 나는 부분 배열 $ key [key]에서 바늘을 재귀 적으로 검색해야한다. 문자열 중 하나가 바늘과 일치하면 최상위 키 값을 반환하여 그 페이지가 어떤 페이지에 있는지 알려줍니다. 나는 중첩 된 foreach를 시도했지만, 이것을 얻을 수 없다! 여기 재귀의 실제 증거를 확인할 수 없습니다 때문에하위 배열 검색 및 마스터 배열 키 반환

$something = Array 
(
    [1corte.php] => Array 
     (
      [0] => Posicionador de toras automático 
      [1] => Equipamento para madeiras acima de 3 m de comprimento 
      [2] => Bitolador automático 
     ) 

    [geminada.php] => Array 
     (
      [0] => Jimi cracks corn 
      [1] => etc 
      [2] => etc2 
     ) 

    [etc.php] => Array 
     (
      [0] => ... 
지금까지 시도 것을
+2

배열의 깊이가 고정되어 있습니까? 지금까지 가지고있는 것과 실패한 것을 보여 주어야합니다. – jeroen

+0

http://www.php.net/array_search#110120 – voodoo417

+0

죄송합니다. – RoboRob

답변

1

다음에 쇼 ...

function searchString($stringToSearch) { 
    $results = array(); 
    foreach($something as $key => $value) { 
     foreach($value as $data) { 
      if($data == $stringToSearch) 
       results[] = $key; 
     } 
    } 
    return $results; 
} 
+0

이것은 첫 번째 최상위 키에 대해서는 정상적으로 작동하지만 그 이후에는 함수가 결과를 계속 끌어 오지 않습니다. I는 상기 기능을 가지며,이 같은 호출 : 의 foreach (재 $로 $의 RE1) { \t \t \t 에코 '

'.$re.'
'을; \t \t} – RoboRob

+0

당신은 그것에 대해 아무것도 쓰지 않았습니다. 그래서 다음에 당신이 찾고있는 것을 더 잘 묘사합니다. 내 대답을 편집했습니다. 발견 된 모든 키가 반환됩니다. 이것을 먼저 호출하고 결과 배열을 반복합니다. –

3

, 이것은 잘 수행해야합니다

foreach ($something as $key => $values) { 
    if (in_array($theValueYoureLookingFor, $values)) { 
     echo 'Found it! The key is: ', $key; 
     break; 
    } 
}