如何从PHP数组中删除重复值?
当前回答
我们可以很容易地使用arar_unique ($array);删除重复的元素 但是这个方法的问题是元素的索引不是按顺序的,如果以后在其他地方使用会引起问题。
Use
$arr = array_unique($arr);
$arr = array_values($arr);
print_r($arr);
Or
$arr = array_flip($arr);
$arr = array_flip($arr);
$arr = array_values($arr);
print_r($arr);
第一次翻转,翻转键值对,从而将具有相似键(即最初的值)的元素组合在一起。
第二次翻转还原所有键值对。最后,array_value()设置每个值的key从0开始。
注意:不能用于具有预定义键值对的关联数组
其他回答
爆炸(”、“内爆”、“,array_unique(爆炸(”、“YOUR_ARRAY美元))));
这将负责键关联,并将生成的新数组的键序列化:-)
我们可以很容易地使用arar_unique ($array);删除重复的元素 但是这个方法的问题是元素的索引不是按顺序的,如果以后在其他地方使用会引起问题。
Use
$arr = array_unique($arr);
$arr = array_values($arr);
print_r($arr);
Or
$arr = array_flip($arr);
$arr = array_flip($arr);
$arr = array_values($arr);
print_r($arr);
第一次翻转,翻转键值对,从而将具有相似键(即最初的值)的元素组合在一起。
第二次翻转还原所有键值对。最后,array_value()设置每个值的key从0开始。
注意:不能用于具有预定义键值对的关联数组
在PHP中从关联数组中删除重复值。
$arrDup = Array ('0' => 'aaa-aaa' , 'SKU' => 'aaa-aaa' , '1' => '12/1/1' , 'date' => '12/1/1' , '2' => '1.15' , 'cost' => '1.15' );
foreach($arrDup as $k => $v){
if(!( isset ($hold[$v])))
$hold[$v]=1;
else
unset($arrDup[$k]);
}
数组([0]= > aaa-aaa [1] = > 12/1/1 [2] = > 1.15)
我没有使用任何函数。
$arr = array("1", "2", "3", "4", "5", "4", "2", "1");
$len = count($arr);
for ($i = 0; $i < $len; $i++) {
$temp = $arr[$i];
$j = $i;
for ($k = 0; $k < $len; $k++) {
if ($k != $j) {
if ($temp == $arr[$k]) {
echo $temp."<br>";
$arr[$k]=" ";
}
}
}
}
for ($i = 0; $i < $len; $i++) {
echo $arr[$i] . " <br><br>";
}
这是一个很好的方法。可能要确保它的输出又回到一个数组。现在只显示最后一个唯一值。
试试这个:
$arrDuplicate = array ("","",1,3,"",5);
foreach (array_unique($arrDuplicate) as $v){
if($v != "") { $arrRemoved[] = $v; }
}
print_r ($arrRemoved);