假设我有这个数组,
$cast = [
'jon' => [
'fullname' => 'Jon Snow',
'class' => 'warrior',
],
'margery' => [
'fullname' => 'Margery Tyell',
'class' => 'politician'
]
];
我如何获得密钥并且仅具有特定价值?像这样,
$name = ['jon'=>'Jon Snow', 'margery'=>'Margery Tyrell'];
是否有任何支持此功能的功能,所以它不必是循环?
任何答案都将不胜感激!
答案 0 :(得分:2)
您可以遍历多维数组,并将内部数组的索引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
);
答案 1 :(得分:0)
我猜你已经迭代它并只提取有趣的你的键。这里有一个例子:
function getValuesForKey($array, $key){
$result = [];
foreach($array as $k => $subarray){
if(isset($subarray[$key])){
$result[$k] = $subarray[$key];
}
}
return $result;
}