如何在PHP中从关联数组的键中提取所有最后的值?

时间:2018-09-24 00:52:42

标签: 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' ]
];

我想在其中返回每个item-X的最后一个值。就我而言,应该创建一个新的数组:

$new_array = [
    'item-1' => 'item-child-2',
    'item-2' => 'item-child-3',
    'item-3' => 'item-child-1'
]

如何在不陷入循环噩梦的情况下实现这一目标?

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>';

演示 https://3v4l.org/suISW

使用foreach()count()

$expected = [];
foreach($array as $k=>$v){
    $expected[$k]=$v[count($v)-1];
}

演示: https://3v4l.org/nt3oM

OR array_map()

整齐
$output = array_map(function ($arr) {return end($arr);}, $array);

演示 https://3v4l.org/2Zl0l