具有相同元素的数组并在php中抓取一个

时间:2013-07-25 10:13:29

标签: php arrays

我有一个数组,其中包含更多的子数组,如

    Array
(
    [0] => MM
    [1] => CM
    [2] => Inch
)
Array
(
    [0] => MM
    [1] => CM
    [2] => Inch
)

由于两个数组都有相同的元素,所以我尝试从中获取一个。我尝试array_unique(),合并函数但没有成功。我可以通过使用foreach循环删除一个数组但我想知道如果它是可能通过单个声明,比如一些bulitin函数或一行代码不超过那个。希望得到我的观点。我试图减少我的代码

3 个答案:

答案 0 :(得分:1)

如果我收到您的问题,您正试图删除重复的子数组。试试这个

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

array_unique从数组中删除重复项。

array_map需要2个参数

array_map ( callable $callback , array $arr1 [, array $... ] )

它以递归方式运行数组

上的回调

基本上代码序列化数组的内容(在这种情况下是每个子数组),删除重复项然后反序列化内容以重新创建原始数组

更多信息:How to remove duplicate values from an array in PHP

答案 1 :(得分:0)

仅使用下面的一条陈述

  <?php
    $arr1 = array('MM','CM','Inch');
    $arr2 = array('MM','CM','Inch');
    $array = array_values(array_unique(array_merge($arr1,$arr2)));

echo "<pre]>";
print_r($array);
exit;

?>

<强>输出

Array
(
    [0] => MM
    [1] => CM
    [2] => Inch
)

答案 2 :(得分:0)

在那之前......我正在编辑你的一些代码。我使用像这样的代码::

    <?php
    $a = Array(
        Array(
            0 => MM,
            1 => CM,
            2 => Inch
        ),
        Array(
            0 => MM,
            1 => CM,
            2 => Inch
        )
    );

    print_r($a);
    echo "<br/><br/><br/>";

    print_r(array_unique($a));
    ?>

来自我的代码::

    Array ( [0] => Array ( [0] => MM [1] => CM [2] => Inch ) [1] => Array ( [0] => MM [1] => CM [2] => Inch ) ) 


    Array ( [0] => Array ( [0] => MM [1] => CM [2] => Inch ) )

希望它会有所帮助。 问候。

相关问题