我的结构如下:
$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' ]
];
我想返回每个item-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>';
或使用foreach()
和count()
$expected = [];
foreach($array as $k=>$v){
$expected[$k]=$v[count($v)-1];
}
OR 与 array_map()
非常简洁
$output = array_map(function ($arr) {return end($arr);}, $array);
关于php - 如何从 PHP 中的关联数组的键中提取所有最后的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52471551/