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



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

我已经尝试了一些方法,例如:

$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
)
)

可以使用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((

相关内容

  • 没有找到相关文章

最新更新