ホームページ >バックエンド開発 >PHPの問題 >PHPで2つの配列の異なる値を取得する方法

PHPで2つの配列の異なる値を取得する方法

PHPz
PHPzオリジナル
2023-04-20 10:07:30633ブラウズ

PHP では、2 つの配列内の異なる要素を取得するには、array_diff() 関数を使用できます。この関数は、配列 1 には存在するが配列 2 には存在しない要素で構成される新しい配列を返します。

次の例は、比較する 2 つの配列が $arr1 と $arr2 であると仮定しています。

$arr1 = array("apple", "banana", "orange");
$arr2 = array("banana", "orange", "pear", "kiwi");
$result = array_diff($arr1, $arr2);
print_r($result); // 输出:Array ( [0] => apple )

この例では、$arr1 の "apple" 要素は$arr2 が出現するので、$result 配列に返されます。

ただし、array_diff() は 1 次元配列のみを比較することに注意してください。多次元配列を比較したい場合は、再帰関数を自分で記述する必要があります。多次元配列を比較する例を次に示します。

function array_diff_multi($arr1, $arr2) {
    $diff = array();
    foreach ($arr1 as $key => $value) {
        if (is_array($value) && isset($arr2[$key]) && is_array($arr2[$key])) {
            $diff[$key] = array_diff_multi($value, $arr2[$key]);
        } else {
            if (!in_array($value, $arr2)) {
                $diff[$key] = $value;
            }
        }
    }
    return $diff;
}

$arr1 = array("fruit" => array("apple", "banana", "orange"), "color" => "blue");
$arr2 = array("fruit" => array("banana", "orange", "pear", "kiwi"), "color" => "red");
$result = array_diff_multi($arr1, $arr2);
print_r($result); // 输出:Array ( [fruit] => Array ( [0] => apple ) [color] => blue )

この例では、2 つの多次元配列を比較できるカスタム関数 array_diff_multi() を作成します。再帰を使用して各部分配列の要素を比較します。

つまり、PHP では 2 つの配列の異なる要素を取得する方法がたくさんあります。 array_diff() 関数は、最も単純で最も一般的に使用されるメソッドの 1 つですが、1 次元配列でのみ機能します。多次元配列を比較する場合は、カスタム再帰関数を使用する必要があります。

以上がPHPで2つの配列の異なる値を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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