3

こんにちは、この配列から重複する 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として見てから続行し、.5として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
    )
)

ここで、すべての X 値は一意です。オンラインで検索したところ、この機能を使用できることがわかりましたが、これは機能していないようです:

 $result = array_map("unserialize", array_unique(array_map("serialize", $array)));    
4

4 に答える 4

5

ループして、一意の値を見つけてください。

$taken = array();

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

値が初めてx使用されるたびに、それを保存します。その後の使用はunset配列からのものです。

于 2014-02-24T23:13:17.370 に答える
-2
array_unique(my_array, SORT_REGULAR)
于 2014-02-24T23:14:28.697 に答える