>백엔드 개발 >PHP 튜토리얼 >如何获取数组对应键的值

如何获取数组对应键的值

WBOY
WBOY원래의
2016-07-06 13:52:261521검색

已知一个多维数组 arr, 以及一个另一个数组 key = [1,2], 其中key中的第一个元素代表arr数组的第一个纬度, 第二个元素代表arr 的第二个纬度, 以此类推, key的元素个数不确定, 该如何获取arr 对应的key列出的所对应的值,
比如上面的key = 1, 2], 我就要获取arr[1, 如何key = 1,2,4], 我要获取arr[1[4]....

回复内容:

已知一个多维数组 arr, 以及一个另一个数组 key = [1,2], 其中key中的第一个元素代表arr数组的第一个纬度, 第二个元素代表arr 的第二个纬度, 以此类推, key的元素个数不确定, 该如何获取arr 对应的key列出的所对应的值,
比如上面的key = 1, 2], 我就要获取arr[1, 如何key = 1,2,4], 我要获取arr[1[4]....

<code class="php"><?php $arr = [
  [
    "value" => "0",
    "children" => [
      [
        "value" => "0-0",
      ],
      [
        "value" => "0-1",
        "children" => [
          [
            "value" => "0-1-0",
          ],
        ]
      ],
    ]
  ],
  [
    "value" => "1",
    "children" => [
      [
        "value" => "1-0",
        "children" => [
          [
            "value" => "1-0-0",
            "children" => [
              [
                "value" => "1-0-0-0",
                "children" => []
              ],
            ]
          ],
        ]
      ],
    ]
  ]
];

$key = [0, 1];

function getValueByKey($arr, $key) {
    $index = array_shift($key);
    if(count($key) === 0) return $arr[$index];
    return getValueByKey($arr[$index]['children'], $key);
}

// 更改對應索引的 value
function setValueByKey(&$arr, $key, $value) {
    $index = array_shift($key);
    if(count($key) === 0) return $arr[$index]['value'] = $value;
    return setValueByKey($arr[$index]['children'], $key, $value);
}

setValueByKey($arr, $key, '123');

// 返回匹配到的數組,再看要取出啥,這邊 value 為例
print_r(getValueByKey($arr, $key)['value']);
</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.