📜  PHP |从数组中删除重复元素

📅  最后修改于: 2022-05-13 01:56:22.324000             🧑  作者: Mango

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
)