php怎么把数组去重
-
在PHP中,可以使用array_unique函数来实现数组去重的功能。array_unique函数会返回一个新的数组,其中只保留原始数组中的唯一元素,重复的元素会被删除。
以下是使用array_unique函数对数组去重的示例代码:
“`php
// 原始数组
$array = [1, 2, 2, 3, 4, 4, 5];// 使用array_unique函数去重
$uniqueArray = array_unique($array);// 输出结果
print_r($uniqueArray);
“`运行以上代码后,输出结果为:
“`
Array
(
[0] => 1
[1] => 2
[3] => 3
[4] => 4
[6] => 5
)
“`可以看到,重复的元素2和4被从数组中删除,得到了一个新的去重后的数组。
需要注意的是,array_unique函数会保留第一个出现的元素,而删除后面重复出现的元素。如果需要保留最后一个出现的元素,可以使用array_reverse函数先将数组倒序,再调用array_unique函数进行去重。
另外,array_unique函数默认会将元素的键值关联保留,如果需要重置数组的键值索引,可以使用array_values函数重新索引数组。
综上所述,以上是在PHP中使用array_unique函数实现数组去重的方法。
2年前 -
在PHP中,有多种方法可以对数组进行去重操作。以下是几个常用的方法:
1. 使用array_unique函数:该函数是PHP内置的数组去重函数,可以去除数组中重复的值。示例代码如下:
“`
$arr = array(1, 2, 3, 4, 2, 1, 5);
$newArr = array_unique($arr);
print_r($newArr);
“`输出结果为:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [6] => 5 ),去重后的数组只保留了一个1和一个2。
2. 使用循环遍历去重:通过遍历数组中的元素,并将不重复的元素存入一个新数组中,可以实现去重的效果。示例代码如下:
“`
$arr = array(1, 2, 3, 4, 2, 1, 5);
$newArr = array();
foreach($arr as $value) {
if (!in_array($value, $newArr)) {
$newArr[] = $value;
}
}
print_r($newArr);
“`输出结果与上述方法相同,都是去除了数组中的重复元素。
3. 使用array_flip和array_keys组合方法:通过将数组的值作为键,再使用array_keys函数获取键的集合,可以实现去重的效果。示例代码如下:
“`
$arr = array(1, 2, 3, 4, 2, 1, 5);
$newArr = array_keys(array_flip($arr));
print_r($newArr);
“`输出结果与上述方法相同。
4. 使用array_reduce函数:该函数可以对数组进行迭代处理,并返回一个结果。可以通过使用该函数,并在回调函数中判断元素是否已存在来实现去重效果。示例代码如下:
“`
$arr = array(1, 2, 3, 4, 2, 1, 5);
$newArr = array_reduce($arr, function($carry, $item){
if (!in_array($item, $carry)) {
$carry[] = $item;
}
return $carry;
}, []);
print_r($newArr);
“`输出结果与上述方法相同。
5. 使用for循环和unset函数:通过使用for循环遍历数组,并使用unset函数将重复的元素从数组中移除,可以实现去重效果。示例代码如下:
“`
$arr = array(1, 2, 3, 4, 2, 1, 5);
$length = count($arr);
for ($i = 0; $i < $length; $i++) { for ($j = $i + 1; $j < $length; $j++) { if ($arr[$i] == $arr[$j]) { unset($arr[$j]); } }}print_r($arr);```输出结果与上述方法相同。这些方法都可以对PHP数组进行去重操作,根据实际情况选择合适的方法即可。2年前 -
在PHP中,可以使用array_unique()函数来去重数组。array_unique()函数的作用是返回一个去除了重复值的新数组。
使用array_unique()函数很简单,只需要将待去重的数组作为函数的参数即可。下面是使用array_unique()函数去重数组的示例代码:
“`php
$array = [1, 2, 3, 3, 4, 5, 5];
$uniqueArray = array_unique($array);
print_r($uniqueArray);
“`运行上述代码,输出结果为:
“`
Array
(
[0] => 1
[1] => 2
[2] => 3
[4] => 4
[5] => 5
)
“`可见,重复的元素已经被去除了。
需要注意的是,array_unique()函数只能去除值相同的重复元素,不能去除键相同但值不同的元素。也就是说,如果数组中有键相同但值不同的元素,那么这些元素会保留其中一个。
如果需要保留键相同但值不同的元素,并且去掉其他重复元素,可以使用array_intersect_key()函数和array_unique()函数的结合。下面是示例代码:
“`php
$array = [
‘a’ => 1,
‘b’ => 2,
‘c’ => 2,
‘d’ => 3,
‘e’ => 3,
];
$uniqueArray = array_intersect_key($array, array_unique($array));
print_r($uniqueArray);
“`运行上述代码,输出结果为:
“`
Array
(
[a] => 1
[b] => 2
[d] => 3
)
“`可见,键相同但值不同的元素都被保留了,其他重复元素则被去除了。
综上所述,使用array_unique()函数可以方便地去重数组。如果需要去除键相同但值不同的元素,并且保留其中一个,可以结合使用array_intersect_key()函数和array_unique()函数。使用这两个函数可以满足不同的去重需求。
2年前