PHPの2次元配列で重複を削除する方法
PHP での重複を排除するための 2 次元配列に対処するための方法:
- array_unique()関数は配列から重複を削除するために使用できます。2次元配列にも使用可能ですが、1次元目の重複しか削除できません。2次元目の重複は削除できません。
$array = array(
array("apple", "banana"),
array("apple", "banana"),
array("orange", "banana")
);
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
print_r($result);
- array_map() 関数と array_walk_recursive() 関数を組み合わせて、配列を文字列に変換できるようにします。次に、array_walk_recursive() 関数を使用して配列の 2 次元目を処理します。最後に、array_unique() 関数を使用して重複した値を削除します。
$array = array(
array("apple", "banana"),
array("apple", "banana"),
array("orange", "banana")
);
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
array_walk_recursive($result, function (&$value) {
$value = unserialize($value);
});
print_r($result);
- 多重配列をループで扱い、in_array() 関数でその要素が結果配列に既に存在するかどうかを判定し、存在しない場合は結果配列に追加します。
$array = array(
array("apple", "banana"),
array("apple", "banana"),
array("orange", "banana")
);
$result = array();
foreach ($array as $item) {
if (!in_array($item, $result)) {
$result[] = $item;
}
}
print_r($result);
これらは一般的な2D配列の重複削除方法であり、実際の状況に応じて適切な方法を選択できます。