0

重複した配列を削除すると同時に、新しいキー「重複」と重複の総数を元の配列に追加したいと考えています。PHPを使用してこれを行う最良の方法は何ですか?

Array
(
    [0] => Array
        (
            [w] => 10
            [r] => 10
            [e] => 489
        )

    [1] => Array
        (
            [w] => 10
            [r] => 10
            [e] => 489
        )

    [2] => Array
        (
            [w] => 10
            [r] => 10
            [e] => 489
        )

    [3] => Array
        (
            [w] => 20
            [r] => 20
            [e] => 489
        )

    [4] => Array
        (
            [w] => 10
            [r] => 10
            [e] =>
        )

)

次のようになります。

Array
(
    [0] => Array
        (
            [w] => 10
            [r] => 10
            [e] => 489
            [duplicates] => 2
        )

    [3] => Array
        (
            [w] => 20
            [r] => 20
            [e] => 489
        )

    [4] => Array
        (
            [w] => 10
            [r] => 10
            [e] =>
        )

)
4

1 に答える 1

0

一意の配列を取得して、元の配列と比較できます。

$result = array_map("unserialize", array_unique(array_map("serialize", $input)));
foreach ($result as &$arr) {
    $cnt = 0;
    foreach ($input as $inArr) {
        if ($arr == $inArr) {
            $cnt++;
        }
    }
    if ($cnt > 1) {
        $arr['duplicates'] = $cnt - 1;
    }
}

結果には、必要なものが含まれています。

于 2013-08-03T03:48:42.610 に答える