PHP |从数组中删除重复元素
您将获得一个 n 元素数组。您必须在不使用PHP中的任何循环的情况下删除重复值并打印该数组。
例子:
Input : array[] = {2, 3, 1, 6, 1, 6, 2, 3}
Output : array (
[6] => 2
[7] => 3
[4] => 1
[5] => 6
)
Input : array[] = {4, 2, 7, 3, 2, 7, 3}
Output : array (
[0] => 4
[4] => 2
[5] => 7
[6] => 3
)
在 C/ Java中,我们必须遍历数组,并且对于每个元素,您必须检查其是否存在重复项。但是PHP提供了一个内置函数(array_flip()),使用它我们可以在不使用循环的情况下删除重复元素。
array_flip()以翻转顺序返回一个数组,即数组中的键成为值,数组中的值成为键。
请注意,数组的值必须是有效的键,即它们必须是整数或字符串。如果值的类型错误,则会发出警告,并且有问题的键/值对不会包含在结果中。
注意:如果一个值出现多次,最新的键将被用作它的值,所有其他的都将丢失。同样,由于 array_flip() 返回带有保留键的数组,我们将使用 array_values() 对键重新排序。
方法:想法是使用 array_flip()函数的这个属性,如果该值多次出现,则选择最新的键作为其值。我们将使用 array_flip()函数两次来删除重复值。第一次使用 array_flip()函数时,它将返回一个数组,其中键和值与删除的重复项交换。在第二次使用它时,它将再次将其重新排序为原始配置。
下面是上述想法的实现:
输出:
Original Array :
Array
(
[0] => 1
[1] => 5
[2] => 2
[3] => 5
[4] => 1
[5] => 3
[6] => 2
[7] => 4
[8] => 5
)
Updated Array :
Array
(
[0] => 1
[1] => 5
[2] => 2
[3] => 3
[4] => 4
)