PHP では、2 次元配列は非常に一般的なデータ構造です。ただし、2 次元配列内のデータを重複排除する必要がある場合、いくつかの問題が発生する可能性があります。
この記事では、PHP で 2 次元配列の重複を排除し、一意の値を保持する方法を紹介します。ループの使用と array_map() 関数の使用という 2 つの一般的な方法について説明します。
ループを使用して 2 次元配列を走査し、重複する値を見つけて削除するのが最も直接的な方法です。サンプル コードは次のとおりです。
function unique_arr($array2D){ foreach ($array2D as $k=>$v){ $tem[$k] = serialize($v); } $tem = array_unique($tem); foreach ($tem as $k=>$v){ $array[$k] = unserialize($v); } return $array; }
上記のコードでは、まず foreach ループを使用して 2 次元配列を走査し、配列をシリアル化し、一時配列 $tem に格納します。次に、array_unique() 関数を使用して、$tem 内の重複した値を削除します。最後に、再度 foreach ループを使用して逆シリアル化し、配列 $array に保存します。最終的に、この関数は重複しない 2 次元配列を返します。
PHP では、array_map() 関数を使用して、配列内の各要素に対してコールバック関数を実行できます。二次元配列から重複する値を削除することも、array_map() 関数を使用して簡単に行うことができます。コード例は次のとおりです。
function unique_arr($array2D){ $serialize_array = array_map('serialize', $array2D); $unique_serialize_array = array_unique($serialize_array); $array = array_map('unserialize', $unique_serialize_array); return $array; }
最初のメソッドと同様に、このコード例では、まず配列をシリアル化し、新しい配列 $serialize_array に格納します。次に、array_unique() 関数を使用して、$serialize_array 内の重複した値を削除します。最後に、array_map() 関数を使用してシリアル化された配列を逆シリアル化して $array に保存し、最終的に重複しない 2 次元配列を返します。
3. 概要
PHP では、2 次元配列から重複値を削除する一般的な方法が 2 つあります: ループを使用する方法と array_map() 関数を使用する方法です。どちらの方法でも機能を実現できますが、array_map() 関数を使用する方が、シンプルで理解しやすい性質があるため、読みやすく理解しやすいです。
つまり、2 次元配列を処理するときは、データをより効率的かつ便利に処理するために、配列に対するさまざまな操作に注意を払う必要があります。
以上がPHPの二次元配列から重複した値を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。