PHP从多维数组中删除重复值,但保留最后一个值
我有这个数组PHP从多维数组中删除重复值,但保留最后一个值,php,arrays,multidimensional-array,duplicates,Php,Arrays,Multidimensional Array,Duplicates,我有这个数组 $items = Array ( [0] => Array ( [0] => xx [1] => 'update') [1] => Array ( [0] => bx [1] => 'update') [2] => Array ( [0] => xx [1] => 'creation') [3] => Array ( [0] => fs [1] => 'creation') [4] => Array (
$items = Array (
[0] => Array ( [0] => xx [1] => 'update')
[1] => Array ( [0] => bx [1] => 'update')
[2] => Array ( [0] => xx [1] => 'creation')
[3] => Array ( [0] => fs [1] => 'creation')
[4] => Array ( [0] => tx [1] => 'update')
[5] => Array ( [0] => bx [1] => 'creation')
)
我试图删除基于第一个元素(xx、bx、ax等)的重复值
如果同一个表中的两个元素匹配,我希望保留索引较高的最后一个元素,
结果如下所示
$items = Array (
[0] => Array ( [0] => xx [1] => 'creation')
[1] => Array ( [0] => bx [1] => 'creation')
[2] => Array ( [0] => fs [1] => 'creation')
[3] => Array ( [0] => tx [1] => 'update')
)
保留最后一个对我来说有点困惑,因为我是PHP新手。
提前谢谢你我找到了解决办法, 我开始反转数组,然后执行以下代码
$taken = array();
$reverse = array_reverse($items, true);
foreach($reverse as $key => $item) {
if(!in_array($item[0], $taken)) {
$taken[] = $item[0];
} else {
unset($reverse[$key]);
}
}
通用重复数据消除:
$result = [];
foreach ($array as $item) {
$result[$item[0]] = $item;
}
功能性:
$result = array_reduce($array, function ($acc, $i) {
return [$i[0] => $i] + $acc;
}, [])
太棒了:
array_column($array, null, 0);
大概
ax
条目也应该在结果数组中?是的,我已经更改了,它是xx,我忘记编辑了