php的数组怎么去重复
-
在PHP中,有多种方法可以去除数组中的重复元素。下面我们将介绍三种常见的方法。
方法一:使用array_unique函数
array_unique函数可以去除数组中的重复元素,并返回一个新的数组。该函数会保留数组中的第一个出现的元素,而将后续出现的相同元素删除。示例代码如下:
“`
$array = array(‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’);
$newArray = array_unique($array);print_r($newArray);
“`输出结果为:
“`
Array
(
[0] => a
[1] => b
[2] => c
)
“`方法二:使用循环遍历
可以使用循环遍历数组,并通过判断元素是否已经存在于新数组中来去除重复元素。示例代码如下:
“`
$array = array(‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’);
$newArray = array();foreach ($array as $value) {
if (!in_array($value, $newArray)) {
$newArray[] = $value;
}
}print_r($newArray);
“`输出结果为:
“`
Array
(
[0] => a
[1] => b
[2] => c
)
“`方法三:使用array_flip和array_values函数
可以使用array_flip函数将数组的键值对调,然后再使用array_values函数重新索引数组的键,从而去除重复元素。示例代码如下:
“`
$array = array(‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘c’);
$newArray = array_values(array_flip($array));print_r($newArray);
“`输出结果为:
“`
Array
(
[0] => a
[1] => b
[2] => c
)
“`以上就是在PHP中去除数组中重复元素的三种常见方法。您可以根据具体需求选择适合的方法来处理重复元素。
2年前 -
PHP中可以使用array_unique()函数来去除数组中的重复元素。该函数将返回一个新数组,其中只包含原数组中的唯一元素。下面是一些使用array_unique()函数去重复的示例:
1. 基本用法:
“`
$array = [1, 2, 3, 4, 4, 5, 6, 6];
$uniqueArray = array_unique($array);
print_r($uniqueArray);
“`
输出:
“`
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[5] => 5
[6] => 6
)
“`2. 关联数组去重:
“`
$array = [‘name’ => ‘John’, ‘age’ => 25, ‘name’ => ‘John’, ‘country’ => ‘USA’];
$uniqueArray = array_unique($array);
print_r($uniqueArray);
“`
输出:
“`
Array
(
[name] => John
[age] => 25
[country] => USA
)
“`
注意:关联数组的去重是根据键名进行的,而不是根据键值。3. 二维数组去重:
“`
$array = [
[‘name’ => ‘John’, ‘age’ => 25],
[‘name’ => ‘John’, ‘age’ => 25],
[‘name’ => ‘Mary’, ‘age’ => 30],
];
$uniqueArray = array_map(‘unserialize’, array_unique(array_map(‘serialize’, $array)));
print_r($uniqueArray);
“`
输出:
“`
Array
(
[0] => Array
(
[name] => John
[age] => 25
)
[2] => Array
(
[name] => Mary
[age] => 30
)
)
“`
注意:对于二维数组的去重,我们需要使用serialize()和unserialize()函数先将每个元素序列化成字符串,然后应用array_unique()函数进行去重,最后再将序列化的字符串转回为数组。4. 字符串数组去重:
“`
$array = [‘apple’, ‘banana’, ‘apple’, ‘orange’, ‘banana’];
$uniqueArray = array_keys(array_flip($array));
print_r($uniqueArray);
“`
输出:
“`
Array
(
[0] => apple
[1] => banana
[2] => orange
)
“`
通过将数组的值作为键创建一个新数组,然后再使用array_keys()函数获取新数组的键,即可得到去重后的数组。5. 自定义去重:
“`
$array = [1, 2, 3, 4, 4, 5, 6, 6];
$uniqueArray = [];
foreach ($array as $value) {
if (!in_array($value, $uniqueArray)) {
$uniqueArray[] = $value;
}
}
print_r($uniqueArray);
“`
输出与示例1相同。以上是一些常用的方法来去重PHP数组。根据具体的需求和应用场景,选择合适的方法进行去重操作。
2年前 -
在PHP中去重复数组可以使用array_unique()函数。array_unique()函数会返回一个去重后的数组,即移除了原数组中的重复元素。
下面是使用array_unique()函数去重复数组的方法和操作流程:
1. 创建一个包含重复元素的数组。
“`php
$array = array(1, 2, 2, 3, 4, 4, 5);
“`2. 使用array_unique()函数去重复数组。
“`php
$uniqueArray = array_unique($array);
“`3. 打印去重后的数组。
“`php
print_r($uniqueArray);
“`此时输出为:
“`
Array
(
[0] => 1
[1] => 2
[3] => 3
[4] => 4
[6] => 5
)
“`可以看到,数组中的重复元素已经被移除了,只保留了一个副本。
另外,array_unique()函数默认是使用全等比较运算符(===)进行元素比较,也就是说要求元素的值和类型都相等才会被视为重复。如果要进行松散比较,可以使用array_unique($array, SORT_REGULAR)来指定比较模式。
例如,对于以下数组:
“`php
$array = array(1, ‘1’, 2, ‘2’, 3, ‘3’);
“`如果使用默认的全等比较模式:
“`php
$uniqueArray = array_unique($array);
“`则输出为:
“`
Array
(
[0] => 1
[2] => 2
[4] => 3
)
“`可以看到,虽然1和’1’的值相等,但类型不同,所以被保留了两个。
如果使用松散比较模式:
“`php
$uniqueArray = array_unique($array, SORT_REGULAR);
“`则输出为:
“`
Array
(
[0] => 1
[2] => 2
[4] => 3
)
“`这次1和’1’被视为相同的元素,只保留了一个。
综上所述,使用array_unique()函数可以很方便地去重复PHP数组,而且还可以指定比较模式来满足不同的需求。
2年前