ホームページ >バックエンド開発 >PHPの問題 >PHP言語を使用して2つの配列から同一の要素を削除する方法

PHP言語を使用して2つの配列から同一の要素を削除する方法

PHPz
PHPzオリジナル
2023-04-25 09:01:16540ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。