许多问题都回答了如何删除数组的dublicate值,但是如何从数组的 end 中删除重复值?例如,具有以下值的数组:
28, 56, 26, 369, 114, 26, 26, 26
应该返回
28, 56, 26, 369, 114
请注意,它保留了之前的26个,只删除了最后一个重复项
有没有办法在PHP中执行此操作?
答案 0 :(得分:2)
CASE 1 - 如果要删除阵列中的任何重复项。
使用函数array_unique()
$array = array(28, 56, 26, 369, 114, 26, 26, 26);
$unique_values = array_unique($array);
var_dump($unique_values);
案例2 - 如果你只想在数组的末尾删除重复项,那么如果在开始时有重复项,它们将被保留 - 它不是很漂亮的代码..
$arr = array(28, 56, 26, 26, 369, 369, 114, 26, 26, 26, 114);
$arr = array_reverse($arr);
$counts = array_count_values($arr);
foreach ($arr as $key => $value) {
if(!isset($first_element))
$first_element = $value;
if($first_element != $value)
break;
if($counts[$value] > 1){
unset($arr[$key]);
$counts[$value] = $counts[$value] - 1;
}
}
$arr = array_reverse($arr);
var_dump($arr);
答案 1 :(得分:1)
$array = array(28, 56, 26, 369, 114, 26, 26, 26);
end($array);
$last = FALSE;
while (current($array) == prev($array)) {
unset($array[key($array)]);
$last = TRUE;
}
if ($last) {
end($array);
unset($array[key($array)]);
}
var_dump($array);