从嵌套数组

时间:2017-08-30 04:47:36

标签: php

我的数组中有重复的记录,如下所示

   Array ( [0] => 
              Array ( 
                [driverId] => 112 
                [amount] => 15 
                [firstname] => Katty 
                )
           [1]=>
              Array ( 
                [driverId] => 112 
                [amount] => 15 
                [firstname] => Katty 
                )
           [2]=>
              Array ( 
                [driverId] => 118 
                [amount] => 15 
                [firstname] => Starkj 
                )
)

我想用driverId删除,以便我的数组不会有重复的结果。我尝试使用array_unique,但是没有成功。我怎样才能实现这一目标?

2 个答案:

答案 0 :(得分:1)

如果您使用SORT_REGULAR标志,则可以使用array_unique()

array_unique($array, SORT_REGULAR);
  

5.2.9添加了可选的sort_flags默认为SORT_REGULAR。在5.2.9之前,此函数用于使用SORT_STRING对数组进行排序   内部。

测试结果

[akshay@localhost tmp]$ cat test.php
<?php


$array = array(
    array('driverId'=>112,'amount'=>15,'firstname'=>'Katty'),
    array('driverId'=>112,'amount'=>15,'firstname'=>'Katty'),
    array('driverId'=>118,'amount'=>15,'firstname'=>'Starkj')
);

print_r( array_unique($array, SORT_REGULAR) );

?>

<强> 输出

[akshay@localhost tmp]$ php test.php
Array
(
    [0] => Array
        (
            [driverId] => 112
            [amount] => 15
            [firstname] => Katty
        )

    [2] => Array
        (
            [driverId] => 118
            [amount] => 15
            [firstname] => Starkj
        )

)

答案 1 :(得分:0)

从帖子中获取

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

希望它会有所帮助。