PHP:在多维数组中查找键的确切位置

埃德姆·奥尔凯(Erdem Olcay)

我有一个动态的多维数组,在所有维中都有唯一的键。数组键可以是任何东西,下面的数组仅是一个示例,表明所有键都是唯一的。)

$data = array(
'0' => array(
    '0-0' => array(
        '0-0-0' => array(
            '0-0-0-0' => 'some value',
            '0-0-0-1' => 'some value',
            ),
        '0-0-1' => array(
            '0-0-1-0' => 'some value',
            '0-0-1-1' => 'some value',
            '0-0-1-2' => 'some value',
            ),
        '0-0-2' => array(
            '0-0-2-0' => 'some value',
            '0-0-2-1' => 'some value',
            ),
        '0-0-3' => array(
            '0-0-3-0' => 'some value',
            ),
        ),
    '0-1' => array(
        '0-1-0' => array(
            '0-1-0-0' => 'some value',
            '0-1-0-1' => 'some value',
            ),
        '0-1-1' => array(
            '0-1-1-0' => 'some value',
            '0-1-1-1' => 'some value',
            ),
        '0-1-2' => array(
            '0-1-2-0' => 'some value',
            '0-1-2-1' => 'some value',
            ),
        ),
    ),
'1' => 'some value',
'2' => array(
    '2-0' => 'some value',
    '2-1' => array(
        '2-1-0' => 'some value',
        ),
    ),
);

子阵列的深度和计数是动态的。所有键都是唯一的,但是上面的示例没有模式。

我需要找到给定键在此数组中的确切位置(所有父级都有)。例如;

get_key_position('0-1-2-1', $data);应该退货array('0', '0-1', '0-1-2', '0-1-2-1') get_key_position('2-1-0', $data);应该退货array('2', '2-1', '2-1-0') get_key_position('1', $data);应该退货array('1')

cFreed

我并没有努力去研究在您的问题下评论所引用的不同链接,所以也许我是在重新发明轮子:)

无论如何,这似乎在任何情况下都有效:

function look4key($key, $data, $path = []) {
  if (is_array($data)) {
    foreach ($data AS $localKey => $value) {
      $localKey = (string)$localKey;
      $localPath = array_merge($path, [$localKey]);
      if ($localKey == $key) {
        return $localPath;
      }
      if ($nestedPath = look4key($key, $value, $localPath)) {
        return $nestedPath;
      }
    }
  }
  # returns NULL if $key not found
}

希望这是相当不言自明,但这一缺陷:(string)$localKey需要像钥匙'0''1'等,因为这种自动施放(看的PHP手册):

包含有效整数的字符串将强制转换为整数类型。例如,键“ 8”实际上将存储在8以下。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP:在多维数组中查找键的确切位置

来自分类Dev

PHP-在多维数组中查找键

来自分类Dev

数组列表中的确切值

来自分类Dev

在编译时查找C ++中<included>文件的确切位置

来自分类Dev

使用 jquery 查找 id 的确切位置编号

来自分类Dev

在列表中的确切位置插入元素,而无需在Python中调整数组大小?

来自分类Dev

在字符串中查找列表的确切项目

来自分类Dev

查找/编辑文件中的确切条目

来自分类Dev

查找文本中“ x”的确切单词的实例数

来自分类Dev

在UITableviewcell中获取UIButton的确切位置

来自分类Dev

在Laravel中自动注入的确切位置在哪里?

来自分类Dev

在php中按值查找多维关联数组的键

来自分类Dev

在多维php数组中查找字符串(键)

来自分类Dev

Elasticsearch匹配类型数组字段中的确切单词

来自分类Dev

在Node.js中将csv文件读入多维数组的确切步骤是什么?

来自分类Dev

在Node.js中将多维数组写入csv文件的确切步骤是什么?

来自分类Dev

如何替换PHP中的确切内容

来自分类Dev

php regex 匹配 URL 中的确切数字 10

来自分类Dev

ListView的确切滚动位置

来自分类Dev

Google大查询的确切位置

来自分类Dev

获取div的确切位置

来自分类Dev

在文本的确切位置附加文本

来自分类Dev

Javascript - 在音轨中的确切位置寻找特定位置的音频

来自分类Dev

Python字典-迭代从JSON响应中的确切键中检索值到集合中

来自分类Dev

PHP mime的确切定义

来自分类Dev

在std :: map中查找最接近或确切的键

来自分类Dev

PHP:在多维数组中查找字符串还是返回空数组键?

来自分类Dev

C中==的确切含义

来自分类Dev

匹配VSCode中的确切单词

Related 相关文章

热门标签

归档