PHP:在多维数组中查找关键位置

发布于 2024-09-07 03:41:55 字数 844 浏览 1 评论 0原文

可能的重复:
PHP:获取独立数组的键

你好。

我有一个多维数组。我想要一个函数来查找给定数组键的位置(我的所有数组键都是字符串),然后将键的位置作为数组返回。

例如:

$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);

Possible Duplicate:
PHP: get keys of independent arrays

Hello.

I have a multi-dimensional array. I want a function that finds the position of the given array key (all my array keys are strings) and then returns the position of the key as an array.

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()
);

Now if I call the function like this:

theFunction('bears');

It should return:

array(1, 3, 0);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿嘿嘿 2024-09-14 03:41:55
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);
      }
   }
}
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);
      }
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文