PHP过滤数组值,并从多维数组中删除重复项

Yea*_*eak 2 php multidimensional-array array-unique

大家好,我试图从该数组中查找重复的x值并将其删除,只保留唯一的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
    ) 
)
Run Code Online (Sandbox Code Playgroud)

所以我需要做的是遍历整个事物,然后将第一个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
    )
)
Run Code Online (Sandbox Code Playgroud)

其中所有X值都是唯一的。我在线搜索,发现要使用此功能,但这似乎不起作用:

 $result = array_map("unserialize", array_unique(array_map("serialize", $array)));    
Run Code Online (Sandbox Code Playgroud)

jte*_*rry 5

只要遍历并查找唯一的值即可:

$taken = array();

foreach($items as $key => $item) {
    if(!in_array($item['x'], $taken)) {
        $taken[] = $item['x'];
    } else {
        unset($items[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

第一次使用该x值时,我们将其保存-随后的用法unset来自该数组。