PHP コードを記述するとき、配列を扱う必要があることがよくあります。 2 つの配列に同じ値が存在する場合、配列をより明確かつ明確にするために、これらの同一の要素を削除することが必要になる場合があります。この記事では、PHP 言語を使用して 2 つの配列から同じ要素を削除する方法を紹介します。
1. array_intersect 関数を使用する
array_intersect 関数を使用すると、2 つの配列に対して交差演算を簡単に実行できます。つまり、2 つの配列内の同じ要素を取得できます。ただし、同一要素を削除する機能を実現するには、array_diff関数を使用して、取得した同一要素を元の配列から除外する必要もあります。以下はサンプルコードです:
$array1 = array(1, 2, 3, 4, 5); $array2 = array(4, 5, 6, 7, 8); //获取两个数组中相同的元素 $intersect = array_intersect($array1, $array2); //从原数组中排除获取到的相同元素 $result = array_diff($array1, $intersect); print_r($result); //输出结果为 Array ( [0] => 1 [1] => 2 [2] => 3 )
2. foreach 関数を使用する
system 関数を使用して操作することに加えて、foreach ループを使用して、ビルドされた PHP と組み合わせることもできます。 -in 関数 array_search および unset を使用して、配列内の同じ要素に対する 2 つの操作を削除します。サンプル コードは次のとおりです。
$array1 = array(1, 2, 3, 4, 5); $array2 = array(4, 5, 6, 7, 8); foreach($array1 as $key=>$value){ if(in_array($value, $array2)){ unset($array1[$key]); } } print_r($array1); //输出结果为 Array ( [0] => 1 [1] => 2 [2] => 3 )
上記のサンプル コードでは、foreach ループは配列 $array1 を走査し、array_search 関数を使用して配列 $array2 を検索し、値が存在するかどうかを確認します。では、unset 関数を使用して要素を削除します。
3. array_filter 関数を使用する
array_filter 関数を使用して配列内の要素をフィルターし、カスタム関数に基づいて要素を保持するかどうかを決定します。したがって、array_filter 関数と in_array 関数を組み合わせて、2 つの配列から同じ要素を削除できます。サンプル コードは次のとおりです:
$array1 = array(1, 2, 3, 4, 5); $array2 = array(4, 5, 6, 7, 8); $res = array_filter($array1, function($value) use($array2){ return !in_array($value, $array2); }); print_r($res); //输出结果为 Array ( [0] => 1 [1] => 2 [2] => 3 )
上記のサンプル コードでは、カスタム関数を使用して、フィルタリング操作。return ステートメントを使用して、保持する必要がある要素を返します。
上記の 3 つの方法はいずれも 2 つの配列の同じ要素を削除する操作を実現できますが、実際の状況に応じて異なる方法を選択する必要があります。なお、ここでいう「同じ要素」とは、値が同じであることを指しており、合同判定(===)によって等しいかどうかではない。
以上がPHP言語を使用して2つの配列から同一の要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。