0

我有一个数组,它由更多的子数组组成,比如

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

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

4

3 回答 3

1

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

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

array_unique从数组中删除重复项。

array_map有 2 个参数

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

它递归地在数组上运行回调

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

更多内容:如何从 PHP 中的数组中删除重复值

于 2013-07-25T10:18:07.280 回答
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 ) )

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

于 2013-07-25T10:31:32.900 回答
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
)
于 2013-07-25T10:21:56.423 回答