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

你会得到一个n元素数组。必须在不使用PHP中的任何循环的情况下删除重复值,然后打印数组。

null

例如:

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()),通过该函数,我们可以在不使用循环的情况下删除重复的元素。

这个 数组_flip() 按翻转顺序返回数组,即数组中的键变为值,数组中的值变为键。

请注意,数组的值必须是有效键,即它们必须是整数或字符串。如果某个值的类型错误,则会发出警告,结果中将不包括有问题的键/值对。

注: 如果一个值多次出现,则将使用最新的键作为其值,其他所有键都将丢失。也作为 数组_flip() 返回带有保留键的数组,我们将使用 数组_值() 这将重新订购钥匙。

方法: 其思想是使用array_flip()函数的这个属性,如果值多次出现,则选择最新的键作为其值。我们将使用array_flip()函数两次来删除重复的值。首次使用array_flip()函数时,它将返回一个数组,其中的键和值与删除的重复项交换。第二次使用时,它会再次将其重新排序为原始配置。

以下是上述理念的实施:

<?php
// define array
$a = array (1, 5, 2, 5, 1, 3, 2, 4, 5);
// print original array
echo "Original Array : " ;
print_r( $a );
// remove duplicate values by using
// flipping keys and values
$a = array_flip ( $a );
// restore the array elements by again
// flipping keys and values.
$a = array_flip ( $a );
// re-order the array keys
$a = array_values ( $a );
// print updated array
echo "Updated Array : " ;
print_r( $a );
?>


输出:

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
)
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享