【发布时间】:2014-02-24 23:07:45
【问题描述】:
大家好,我试图从这个数组中找到重复的 x 值并删除它们,只留下唯一的值。例如我的数组是
Array
(
[0] => Array
(
[x] => 0.5
[y] => 23
)
[1] => Array
(
[x] => 23
[y] => 21.75
)
[2] => Array
(
[x] => 14.25
[y] => 21.875
)
[3] => Array
(
[x] => 19.375
[y] => 21.75
)
[4] => Array
(
[x] => 9.125
[y] => 21.875
)
[5] => Array
(
[x] => 23
[y] => 19.625
)
[6] => Array
(
[x] => 19.375
[y] => 19.625
)
)
所以我需要做的是循环遍历整个事物,然后将第一个 x 值视为 .5 然后继续,将 x 为 .5 的任何其他内容从数组中删除,以便最后我有一个看起来像这样
Array
(
[0] => Array
(
[x] => 0.5
[y] => 23
)
[1] => Array
(
[x] => 23
[y] => 21.75
)
[2] => Array
(
[x] => 14.25
[y] => 21.875
)
[3] => Array
(
[x] => 19.375
[y] => 21.75
)
[4] => Array
(
[x] => 9.125
[y] => 21.875
)
)
所有 X 值都是唯一的。我在网上搜索,发现这个功能可以使用,但这似乎不起作用:
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
【问题讨论】:
-
如果整个元素必须是唯一的,而不是嵌套子数组中的值,则只能使用
array_unique。 -
循环遍历数组,创建一个使用
x值作为键的新关联数组。对于每个元素,测试x是否已经在数组中;如果没有,添加它,否则跳过它。然后在结果上使用array_values得到最终的数组。
标签: php multidimensional-array array-unique