2013-07-12 126 views
0

我有一个数组$ arr。如何从多维数组中获取父数组索引php

当我打印它时,它显示如下结果。

Array 
(
    [0] => Array 
     (
      [name] => homeandgarden-Control Type 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [1] => Array 
     (
      [name] => homeandgarden-Depth 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [2] => Array 
     (
      [name] => homeandgarden-Height 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [3] => Array 
     (
      [name] => homeandgarden-Load Type 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [4] => Array 
     (
      [name] => homeandgarden-Machine Type 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [5] => Array 
     (
      [name] => homeandgarden-Type 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [6] => Array 
     (
      [name] => homeandgarden-Width 
      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [7] => Array 
     (
      [name] => computer & ele 
      [label] => 
      [singular_label] => 
      [hierarchical] => 1 
      [show_ui] => 1 
      [query_var] => 1 
      [rewrite] => 1 
      [rewrite_slug] => 
      [0] => Array 
       (
        [search_items] => 
        [popular_items] => 
        [all_items] => 
        [parent_item] => 
        [parent_item_colon] => 
        [edit_item] => 
        [update_item] => 
        [add_new_item] => 
        [new_item_name] => 
        [separate_items_with_commas] => 
        [add_or_remove_items] => 
        [choose_from_most_used] => 
       ) 

      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [8] => Array 
     (
      [name] => computer 
      [label] => 
      [singular_label] => 
      [hierarchical] => 1 
      [show_ui] => 1 
      [query_var] => 1 
      [rewrite] => 1 
      [rewrite_slug] => 
      [0] => Array 
       (
        [search_items] => 
        [popular_items] => 
        [all_items] => 
        [parent_item] => 
        [parent_item_colon] => 
        [edit_item] => 
        [update_item] => 
        [add_new_item] => 
        [new_item_name] => 
        [separate_items_with_commas] => 
        [add_or_remove_items] => 
        [choose_from_most_used] => 
       ) 

      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [9] => Array 
     (
      [name] => homeandgardenairconditioner-Type 
      [label] => 
      [singular_label] => 
      [hierarchical] => 1 
      [show_ui] => 1 
      [query_var] => 1 
      [rewrite] => 1 
      [rewrite_slug] => 
      [0] => Array 
       (
        [search_items] => 
        [popular_items] => 
        [all_items] => 
        [parent_item] => 
        [parent_item_colon] => 
        [edit_item] => 
        [update_item] => 
        [add_new_item] => 
        [new_item_name] => 
        [separate_items_with_commas] => 
        [add_or_remove_items] => 
        [choose_from_most_used] => 
       ) 

      [1] => Array 
       (
        [0] => product 
       ) 

     ) 

    [10] => Array 
     (
      [name] => homeandgardendishwasher-Control Type 
      [label] => 
      [singular_label] => 
      [hierarchical] => 1 
      [show_ui] => 1 
      [query_var] => 1 
      [rewrite] => 1 
      [rewrite_slug] => 
      [0] => Array 
       (
        [search_items] => 
        [popular_items] => 
        [all_items] => 
        [parent_item] => 
        [parent_item_colon] => 
        [edit_item] => 
        [update_item] => 
        [add_new_item] => 
        [new_item_name] => 
        [separate_items_with_commas] => 
        [add_or_remove_items] => 
        [choose_from_most_used] => 
       ) 

      [1] => Array 
       (
        [0] => product 
       ) 

     ) 
) 

,我有一个变量$ categ.For例如$ CATEG =“homeandgardenairconditioner型” 那么我想知道他的“”父数组的索引是“homeandgardenairconditioner-键入

即--- O/p应为9

如何得到这个指标。请帮我

感谢

+0

@PLB我不知道如何遍历这个数组,所以我首先检查它的名字,然后得到它的父数组索引th at为什么我问。谢谢 –

+0

它是否已经定义您的值将位于数组的第一维?或者它应该用于在'$ array [$ i] [$ j] [$ k] [$ etc]''中查找值? –

+0

@ Frederik.L我有'名称'。你可以写你的代码吗?谢谢 –

回答

7

可能重复,我认为你正在寻找这样的:

function getIndex($name, $array){ 
    foreach($array as $key => $value){ 
     if(is_array($value) && $value['name'] == $name) 
       return $key; 
    } 
    return null; 
} 
+0

是的考拉。我得到了这个谢谢 –

0

试试这个,

function find_parent($array, $needle, $parent = null) { 
    foreach ($array as $key => $value) { 
     if (is_array($value)) { 
      $pass = $parent; 
      if (is_string($key)) { 
       $pass = $key; 
      } 
      $found = find_parent($value, $needle, $pass); 
      if ($found !== false) { 
       return $found; 
      } 
     } else if ($key === 'id' && $value === $needle) { 
      return $parent; 
     } 
    } 

    return false; 
} 

$parentkey = find_parent($array, '0002'); 

PHP - Find parent key of array

+0

它没有给我解决方案。我的情况是littile不同。我不搜索另一个阵列,而我只是想匹配“名称” –

+0

复制答案从https://stackoverflow.com/a/2504778/6556397复制 – rahulsm