如何在包含关联数组时从多维数组中获取数组唯一?

时间:2018-05-23 03:29:44

标签: php multidimensional-array array-unique

我有一个多维数组,每行包含一个关联数组。如何根据指定的数组键使其唯一?

我已经尝试了一些方法:

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

但是无法生成数据,因为我期望我的数组结构如下:

Array
(
[0] => Array
 (
 [product_code] => prod3
 [qty] => 7
 )
[1] => Array
 (
 [product_code] => prod3
 [qty] => 1
 )
[2] => Array
 (
 [product_code] => prod4
 [qty] => 7
 )
[3] => Array
 (
 [product_code] => prod4
 [qty] => 7
 )
)

我希望在使用数组array_unique()方法后获得此结果。仅剩2条记录:

Array
(
[1] => Array
 (
 [product_code] => prod3
 [qty] => 1
 )
[2] => Array
 (
 [product_code] => prod4
 [qty] => 7
 )
)

1 个答案:

答案 0 :(得分:2)

您可以使用array_column将数组转换为关联数组。这将覆盖重复的值。使用array_values将关联数组转换为简单数组。

$arr = //Your array

$result = array_values(array_column( $arr , null, 'product_code' ));

print_r( $result );

这将导致:

Array
(
    [0] => Array
        (
            [product_code] => prod3
            [qty] => 1
        )

    [1] => Array
        (
            [product_code] => prod4
            [qty] => 7
        )

)

文档:array_column()array_values()