2014-01-21 44 views
-2

我正在嘗試搜索下面的數組。我需要遞歸搜索在子數組$ something [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

這對於第一個頂級密鑰很合適,但在此之後該函數不會繼續獲取任何結果。 我具有的功能如上述的,我這樣稱呼它: 的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; 
    } 
}