Maison  >  Article  >  développement back-end  >  PHP 如何在多维数组中查找键呢?

PHP 如何在多维数组中查找键呢?

WBOY
WBOYoriginal
2016-09-06 08:57:08855parcourir

我的数组是这样的:

$arr = array(
'a' => Array(
'1' => '[大]',
'2' => '[小]',
'3' => '[多]',
'4' => '[少]',
)
'b' => Array(
'1' => '[你]',
'2' => '[我]',
'3' => '[她]',
'4' => '[它]',
)
)

我想要根据 [你] 能找到 1 同时还能找到再上一级的键 b。

array_search 貌似只能查找一维数组,请教大家了。

回复内容:

我的数组是这样的:

$arr = array(
'a' => Array(
'1' => '[大]',
'2' => '[小]',
'3' => '[多]',
'4' => '[少]',
)
'b' => Array(
'1' => '[你]',
'2' => '[我]',
'3' => '[她]',
'4' => '[它]',
)
)

我想要根据 [你] 能找到 1 同时还能找到再上一级的键 b。

array_search 貌似只能查找一维数组,请教大家了。

有没有做过类似无限极分类的功能??知道做这个功能的表是怎么设计的吗??

例如:商品分类表

<code>cat_id  cat_name  pid 
  1       test     0
  2       test1    0
  3       test3    0
  4       test4    1
  5       test5    2
  ......
</code>

这个应该熟悉吧, 若是给你一个分类id,我要找他的所有子分类包括他自身该怎么做?? 或者 找他的所有父类包括塔子什么??

关于你的问题,若是你有办法把多维数组的 键名 格式化成类似上面的表的结构,然后你提供一个值,在数组里面查找到这个值对应的key 后 , 再在格式化后的数组里面找,就能得到你想要的结果。

遍历每一个子数组,遍历的时候记得把子数组的名字放到累计变量中,最后找到的时候把累计变量输出。

其实就是在树中进行叶子节点的查找

不知道是不是你想要的。

<code>foreach ($arr as $key=>$value) {
    $ikey = array_search('[你]', $value);
    if ($ikey) {
       echo $key,'--',$ikey,'<br>';
    }
}</code>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn