如何从PHP数组中删除重复值?
当前回答
如果你关心性能并且数组很简单,可以使用:
array_keys(array_flip($array));
它比array_unique快很多倍。
其他回答
试试这个简短而甜蜜的代码-
$array = array (1,4,2,1,7,4,9,7,5,9);
$unique = array();
foreach($array as $v){
isset($k[$v]) || ($k[$v]=1) && $unique[] = $v;
}
var_dump($unique);
输出-
array(6) {
[0]=>
int(1)
[1]=>
int(4)
[2]=>
int(2)
[3]=>
int(7)
[4]=>
int(9)
[5]=>
int(5)
}
我没有使用任何函数。
$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>";
}
在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)
有多种方法可以做到这一点,如下所示
//first method
$filter = array_map("unserialize", array_unique(array_map("serialize", $arr)));
//second method
$array = array_unique($arr, SORT_REGULAR);
使用array_unique()。
例子:
$array = array(1, 2, 2, 3);
$array = array_unique($array); // Array is now (1, 2, 3)
推荐文章
- 如何从PHP数组中删除重复的值
- JavaScript: .forEach()和.map()的区别
- 使用PHP获取客户端IP地址
- 在Javascript/jQuery中创建两个数字之间的所有整数数组,包括
- 获取PHP中的URL参数
- 致命错误:类“ZipArchive”未在
- 设置cookie永不过期
- 为什么数组的地址等于它在C语言中的值?
- '<是什么?=' PHP中的意思?
- PHP中的echo和print有什么不同?
- 我如何使用可选的链接与数组和函数?
- 我如何使用Guzzle发送一个POST请求JSON?
- Angular ng-repeat反过来
- 如何POST JSON数据与PHP卷曲?
- 在PHP中使用getter和setter而不是函数或简单的公共字段有什么优点?