2010-06-28 124 views
0

可能重複:
PHP: get keys of independent arraysPHP:找到關鍵位置在多維數組

你好。我有多維數組。我想要一個函數來查找給定數組鍵的位置(我所有的數組鍵都是字符串),然後將該鍵的位置作爲數組返回。

E.g:

 
$arr = array 
(
    'fruit' => array(
     'apples' => array(), 
     'oranges' => array(), 
     'bananas' => array() 
    ), 
    'vegetables' => array(
     'tomatoes' => array(), 
     'carrots' => array(), 
     'celery' => array(), 
     'beets' => array 
     (
      'bears' => array(), 
      'battlestar-galactica' => array() 
     ), 
    ), 
    'meat' => array(), 
    'other' => array() 
); 

現在,如果我調用該函數是這樣的:

theFunction('bears');

它應該返回:

array(1, 3, 0);
+3

真的嗎?兩天前我給了你一個答案,那就是確實如此。請參閱http://stackoverflow.com/questions/3116970/php-get-keys-of-independent-arrays/3117173#3117173函數'getPosition'。 – Artefacto 2010-06-28 14:07:55

+0

這個例子中的預期功能是什麼? ('bears'=> array('bears'=> 5)));} $ arr = array('bears'=> array('bears'=> array('bears'=> 5))); ? – cypher 2010-06-28 14:08:22

+0

確實如此,但無論出於何種原因,您的函數對於更深的多維數組都無法正常工作。下面的功能工作。 – user367217 2010-06-29 07:09:22

回答

2
function array_tree_search_key($a, $subkey) { 
    foreach (array_keys($a) as $i=>$k) { 
     if ($k == $subkey) { 
     return array($i); 
     } 
     elseif ($pos = array_tree_search_key($a[$k], $subkey)) { 
     return array_merge(array($i), $pos); 
     } 
    } 
} 
+0

謝謝,作品!但有可能只使用$子鍵字符串作爲參數,並始終使用相同的數組?似乎無法得到那個工作... – user367217 2010-06-29 07:40:44