PHP の array_intersect_key() 関数の使用法の概要

王林
リリース: 2023-06-27 06:14:01
オリジナル
1842 人が閲覧しました

PHP の array_intersect_key() 関数は、非常に実用的な関数です。その主な機能は、2 つ以上の配列のキーを比較し、指定されたすべての配列のキー名のみを含む新しい配列を返すことです。要素はすべてに存在します。この記事では、array_intersect_key() 関数の基本的な構文と使用法を紹介します。

1. array_intersect_key() 関数の基本構文

PHP の array_intersect_key() 関数の基本構文は次のとおりです:

array array_intersect_key ( array $array1 , array $array2 [, array $... ] )
ログイン後にコピー

このうち、$array1 、$array2 などが各配列パラメーターに渡されます。

2. array_intersect_key() 関数の使用方法

  1. パラメータを 1 つだけ渡す

パラメータが 1 つだけ渡される場合、array_intersect_key() function doesn't 処理されず、空の配列が直接返されます。

$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS");
$result = array_intersect_key($array1);
print_r($result);  // 输出:Array()
ログイン後にコピー
  1. 2 つのパラメータを渡す

2 つのパラメータを渡す場合、array_intersect_key() 関数は 2 つの配列のキーを比較し、キーが次の要素のみを含む新しい配列を返します。指定されたすべての配列に存在します。

$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
$array2 = array("a" => "PHP", "e" => "Python", "f" => "C++", "d" => "JavaScript");
$result = array_intersect_key($array1, $array2);
print_r($result);  // 输出:Array ( [a] => PHP [d] => JavaScript )
ログイン後にコピー

上記のコードでは、$array1 と $array2 は渡される 2 つの配列パラメーターであり、$result は関数によって返される新しい配列です。この配列には、キー名が両方の配列に存在する要素のみが含まれます。

  1. 3 つ以上のパラメータを渡す

3 つ以上のパラメータを渡す場合、array_intersect_key() 関数は 2 つのパラメータを渡す場合と同じですが、パラメータが 1 つ以上ある点が異なります。または複数の配列パラメータが渡されました。

$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
$array2 = array("a" => "PHP", "e" => "Python", "f" => "C++", "d" => "JavaScript");
$array3 = array("a" => "PHP", "c" => "CSS", "g" => "Ruby", "d" => "JavaScript");
$result = array_intersect_key($array1, $array2, $array3);
print_r($result);  // 输出:Array ( [a] => PHP [d] => JavaScript )
ログイン後にコピー

上記のコードでは、$array1、$array2、および $array3 は渡される 3 つのパラメーターであり、$result は関数によって返される新しい配列です。この配列には、すべての配列に存在するキー名のみが含まれます。指定された配列、要素。

3. array_intersect_key() 関数の応用例

  1. 配列に指定したキー値があるかどうかを判定

array_intersect_key() 関数を使用できます配列に指定されたキー値があるかどうかを判断します。 指定されたキー値。

function checkArrayKey($array, $keys) {
    // 将传入的键名转化为数组
    $keys = array_flip((array) $keys);
    // 比较两个数组的键,返回新数组
    $result = array_intersect_key($keys, $array);
    // 判断键值是否相同,如果键值相同则说明数组中拥有该键值
    return count($result) == count($keys);
}

// 示例使用
$myArray = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
echo checkArrayKey($myArray, "a") ? "存在" : "不存在";  // 输出:存在
echo checkArrayKey($myArray, ["a", "b"]) ? "存在" : "不存在";  // 输出:存在
echo checkArrayKey($myArray, ["d", "e"]) ? "存在" : "不存在";  // 输出:不存在
ログイン後にコピー

上記のコードでは、$myArray は受信配列パラメータです。checkArrayKey() 関数は、配列に指定されたキー値があるかどうかを判断するために使用され、戻り値に基づいて指定されたキー値が存在するかどうかを判断します。価値。存在する場合は true、存在しない場合は false を返します。

  1. 複数の配列内の共通キー名を比較

array_intersect_key() 関数を使用して、複数の配列内の共通キー名を比較できます。

// 示例使用
$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS", "d" => "JavaScript");
$array2 = array("a" => "PHP", "e" => "Python", "f" => "C++", "d" => "JavaScript");
$array3 = array("a" => "PHP", "c" => "CSS", "g" => "Ruby", "d" => "JavaScript");

// 比较多个数组的公共键名
$result = call_user_func_array("array_intersect_key", array($array1, $array2, $array3)); 
print_r($result);  // 输出:Array ( [a] => PHP [d] => JavaScript )
ログイン後にコピー

上記のコードでは、$array1、$array2、$array3 が渡される 3 つの配列パラメーターです。 call_user_func_array() 関数を使用すると、これら 3 つの配列を array_intersect_key() 関数に渡すことができます。比較。複数の配列に共通のキー名。最終結果には、3 つの配列すべてにキー名が存在する要素のみが含まれます。

4. 概要

この記事の導入を通じて、読者は array_intersect_key() 関数の基本的な構文と応用方法をすでに理解したと思います。実際の開発において、複数の配列の共通キー名を比較したり、配列に指定されたキー値があるかどうかを判定したりする必要がある場合、この関数を使用することで簡単に実装できます。

以上がPHP の array_intersect_key() 関数の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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