许多问题回答了如何删除数组的重复值,但是如何从数组末尾删除重复值?例如具有这些值的数组:
28, 56, 26, 369, 114, 26, 26, 26
应该返回
28, 56, 26, 369, 114
请注意,它保留前 26 个,只应删除最后的重复项
有没有办法在 PHP 中做到这一点?
案例 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);
$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);