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 つだけ渡される場合、array_intersect_key() function doesn't 処理されず、空の配列が直接返されます。
$array1 = array("a" => "PHP", "b" => "HTML", "c" => "CSS"); $result = array_intersect_key($array1); print_r($result); // 输出:Array()
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 は関数によって返される新しい配列です。この配列には、キー名が両方の配列に存在する要素のみが含まれます。
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() 関数の応用例
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 を返します。
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 サイトの他の関連記事を参照してください。