繁体   English   中英

在PHP中获取特定键及其在多维数组中的值

[英]Get certain key and it's value in multidimentional array in php

假设我有这个数组,

$cast = [
  'jon' => [
      'fullname' => 'Jon Snow',
      'class' => 'warrior',
   ],
   'margery' => [
      'fullname' => 'Margery Tyell',
      'class' => 'politician'
   ]
];

我如何获得密钥,并且仅具有确定的价值? 像这样,

$name = ['jon'=>'Jon Snow', 'margery'=>'Margery Tyrell'];

是否有任何支持此功能的函数,因此它不必是循环的?

任何答案将不胜感激!

您可以遍历多维数组,然后将键和值添加到内部数组的索引fullname处,并将其添加到新的一维数组中,如下所示:

$names = [];
foreach ($cast as $character => $character_details) {
   $names[$character] = $character_details['fullname'];
}

编辑或者,如果您不想循环遍历元素,则可以使用array_map函数,该函数接受一个函数作为参数,您可以在其中指定如何映射数组的每个元素。 对于您的情况,您只需返回元素的fullname

$names = array_map(
    function ($value) {
        return $value['fullname'];
    },
    $cast
);

我想您已经对其进行了迭代,并且仅提取了您感兴趣的密钥。 这里有一个例子:

function getValuesForKey($array, $key){
            $result = [];
            foreach($array as $k => $subarray){
                if(isset($subarray[$key])){
                    $result[$k] = $subarray[$key];
                }
            }
            return $result;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM