[英]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.