在PHP中,如何从关联数组的键中提取所有最后的值?
我的结构如下:在PHP中,如何从关联数组的键中提取所有最后的值?,php,arrays,Php,Arrays,我的结构如下: $array = [ 'item-1' => [ 'item-child-1', 'item-child-2' ] 'item-2' => [ 'item-child-1', 'item-child-2' , 'item-child-3'] 'item-3' => [ 'item-child-1' ] ]; 在这里,我想返回每个项目-X的最后一个值。在我的情况下,应创建一个新数组: $new_array = [ 'item-1'
$array = [
'item-1' => [ 'item-child-1', 'item-child-2' ]
'item-2' => [ 'item-child-1', 'item-child-2' , 'item-child-3']
'item-3' => [ 'item-child-1' ]
];
在这里,我想返回每个项目-X的最后一个值。在我的情况下,应创建一个新数组:
$new_array = [
'item-1' => 'item-child-2',
'item-2' => 'item-child-3',
'item-3' => 'item-child-1'
]
我怎样才能在不进入恶梦循环的情况下实现这一点呢?一个简单的foreach和end就可以了
<?php
$array = [
'item-1' => [ 'item-child-1', 'item-child-2' ],
'item-2' => [ 'item-child-1', 'item-child-2' , 'item-child-3'],
'item-3' => [ 'item-child-1' ]
];
$expected = [];
foreach($array as $k=>$v){
$expected[$k]=end($v);
}
print '<pre>';
print_r($expected);
print '</pre>';
演示:
或者使用数组映射非常整洁
演示啊,当然可以,但这不是一个简单的例子吗?PHP本机?我在一个半复杂的系统中工作,在这个系统中,逻辑已经很复杂/难以理解了。@cool,我已经用一行解决方案编辑了我的答案。再看看
$expected = [];
foreach($array as $k=>$v){
$expected[$k]=$v[count($v)-1];
}
$output = array_map(function ($arr) {return end($arr);}, $array);