我的结构如下:
$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'
]
如何在不陷入循环噩梦的情况下实现这一目标?
答案 0 :(得分:4)
带有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);