ホームページ > バックエンド開発 > PHPの問題 > PHPで2つの配列の違いを見つける方法

PHPで2つの配列の違いを見つける方法

zbt
リリース: 2023-08-04 17:04:46
オリジナル
2040 人が閲覧しました

php メソッドで 2 つの配列の違いを確認します: 1. array_diff() 関数を使用します。この関数は 2 つ以上の配列をパラメータとして受け取り、最初の配列と他の配列にある値を返します。 .存在しない要素; 2. ループと in_array() 関数を使用して最初の配列の要素を 1 つずつ走査し、in_array() 関数を使用して要素が 2 番目の配列に存在するかどうかを確認します。 array_diff_key() 関数; 4. array_udiff() 関数などを使用します。

PHPで2つの配列の違いを見つける方法

このチュートリアルの動作環境: Windows10 システム、php8.1.3 バージョン、DELL G3 コンピューター。

PHP では、配列の処理と比較が必要になることがよくあります。一般的な操作の 1 つは、2 つの配列間の違いを見つけることです。つまり、一方の配列には表示されるが、もう一方の配列には表示されない要素を検索します。この記事では、この操作を実現するためのいくつかの方法を紹介します。

方法 1: array_diff() 関数を使用する

最も簡単な方法は、PHP の組み込みの array_diff() 関数を使用することです。この関数は 2 つ以上の配列を引数として受け取り、最初の配列にはあるが他の配列には存在しない要素を返します。

サンプル コードは次のとおりです。

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$result = array_diff($array1, $array2);
print_r($result);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
[0] => 1
[1] => 2
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

これは、$array1 には出現するが、$array2 には存在しない要素が、 1と2。

方法 2: ループと in_array() 関数を使用する

array_diff() 関数に加えて、ループと in_array() 関数を使用して 2 つの関数を見つけることもできます。配列の違い。このメソッドは、最初の配列の要素を 1 つずつ反復処理し、in_array() 関数を使用してその要素が 2 番目の配列に存在するかどうかを確認します。

サンプル コードは次のとおりです。

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$result = [];
foreach ($array1 as $element) {
if (!in_array($element, $array2)) {
$result[] = $element;
}
}
print_r($result);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
[0] => 1
[1] => 2
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

方法 3:

別の方法は次のとおりです。 array_diff_key()関数を使用します。この関数は引数として 2 つ以上の配列を受け取り、最初の配列には存在するが他の配列には存在しないキー値を返します。

サンプル コードは次のとおりです。

$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['c' => 3, 'd' => 4, 'e' => 5];
$result = array_diff_key($array1, $array2);
print_r($result);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
[a] => 1
[b] => 2
)
ログイン後にコピー

これは、$array1 には存在するが、$array1 には存在しないキー値が示されています。 $array2 は「a」と「b」です。

方法 4: array_udiff() 関数を使用する

最後の方法は、array_udiff() 関数を使用することです。この関数では、配列の要素を比較するために追加のユーザー定義の比較関数を渡す必要があります。

サンプル コードは次のとおりです。

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 4, 5, 6, 7];
$result = array_udiff($array1, $array2, function($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
});
print_r($result);
ログイン後にコピー

出力結果は次のとおりです。

Array
(
[0] => 1
[1] => 2
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

要約

2 つの違いを見つけます。 PHP の配列 値は、array_diff() 関数、ループ、in_array() 関数、array_diff_key() 関数、array_udiff() 関数の使用など、さまざまな方法で取得できます。特定のニーズとパフォーマンス要件に基づいて差分計算を実装する適切な方法を選択します。 。

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

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート