ホームページ > バックエンド開発 > PHPの問題 > PHPで2つの配列キーが同じかどうかを判断する方法

PHPで2つの配列キーが同じかどうかを判断する方法

PHPz
リリース: 2023-04-24 16:19:07
オリジナル
671 人が閲覧しました

PHP では、2 つの配列のキーが同じかどうかを判断する方法がたくさんあります。この記事では、これらの方法のいくつかとその使用例について説明します。

方法 1: array_keys 関数を使用する

array_keys 関数は、配列内のすべてのキー名 (キー) を取得し、キー名を含む配列を返すために使用されます。 array_keys 関数を使用して 2 つの配列のキー配列を取得し、array_diff 関数を使用して 2 つのキー配列間の差異を比較できます。違いが空の配列の場合、2 つの配列のキー名が同じであることを意味します。

次は、array_keys 関数を使用して配列キー名を比較するサンプル コードです:

$array1 = array('foo' => 1, 'bar' => 2, 'baz' => 3);
$array2 = array('foo' => 4, 'bar' => 5, 'baz' => 6);

if (array_diff(array_keys($array1), array_keys($array2)) === array()) {
    echo "两个数组的键名相同";
} else {
    echo "两个数组的键名不同";
}
ログイン後にコピー

出力結果は次のとおりです: 2 つの配列のキー名は同じです

方法 2: array_diff_key 関数を使用する

array_diff_key 関数を使用して、2 つの配列のキー名を比較し、最初の配列にのみ存在し 2 番目の配列には存在しないキー名で構成される新しい配列を返します。この関数を使用して、2 つの配列のキー名が同じかどうかを判断できます。返された新しい配列が空の場合、2 つの配列のキー名が同じであることを意味します。

#次は、array_diff_key 関数を使用して配列キー名を比較するサンプル コードです:

$array1 = array('foo' => 1, 'bar' => 2, 'baz' => 3);
$array2 = array('foo' => 4, 'bar' => 5, 'baz' => 6);

if (array_diff_key($array1, $array2) === array()) {
    echo "两个数组的键名相同";
} else {
    echo "两个数组的键名不同";
}
ログイン後にコピー
出力結果は次のとおりです: 2 つの配列のキー名は同じです

方法 3: ksort 関数を使用する

ksort 関数は、配列をキー名で昇順に並べ替えるのに使用されます。まず ksort 関数を使用して 2 つの配列を並べ替え、次に等号演算子 (==) を使用して 2 つの配列を比較します。それらが等しい場合、2 つの配列のキー名が同じであることを意味します。

以下は、ksort 関数を使用して配列のキー名を比較するサンプル コードです:

$array1 = array('foo' => 1, 'bar' => 2, 'baz' => 3);
$array2 = array('baz' => 6, 'bar' => 5, 'foo' => 4);

ksort($array1);
ksort($array2);

if ($array1 == $array2) {
    echo "两个数组的键名相同";
} else {
    echo "两个数组的键名不同";
}
ログイン後にコピー
出力結果は次のとおりです: 2 つの配列のキー名は同じです

概要

上記の 3 つの方法はすべて、2 つの配列のキー名が同じかどうかを判断できます。どの方法を使用するかは、特定の状況によって異なります。なお、上記の方法は連想配列の判定には適用できますが、array_keys関数を使用する場合には注意が必要で、配列のキー名が数字の場合、array_keys関数を使用する際に問題が発生する可能性があります。したがって、array_keys 関数を使用する場合は、キー名の順序を変更しないように 2 番目のパラメーターを true に設定することをお勧めします。

以上がPHPで2つの配列キーが同じかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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