MW211 EXIT

devlog
PHP配列/改造array_diff()
2013年11月30日
配列['a', 'b', 'b']と配列['b']の差分を比較したい場合。

「array_diff(array('a', 'b', 'b'), array('b'))」ってやると
結果が、配列['a']のみとなってしまう。

要素が複数ある場合には、その数に応じて差分を取りたいという場合
つまり、結果が配列['a', 'b']であって欲しい場合には「array_diff()」は使えない。

ということで、自前でそれを実現する関数を作ってみた
┌──────────────────────────────────────┐
│function array_diff2($return, $delete) {                                    │
│    if (is_array($return) && is_array($delete)) {                           │
│        foreach ($delete as $data1) {                                       │
│            foreach ($return as $key2 => $data2) {                          │
│                if ($data2 === $data1) {                                    │
│                    unset($return[$key2]);                                  │
│                    break;                                                  │
│                }                                                           │
│            }                                                               │
│        }                                                                   │
│    }                                                                       │
│    return $return;                                                         │
│}                                                                           │
└──────────────────────────────────────┘
分類:PHP配列