PHP は、Web アプリケーションの開発によく使用される強力なプログラミング言語です。 PHP を通じて Web アプリケーションを開発する場合、多くの場合、多次元配列を処理する必要があります。多次元配列は、別の配列を含む配列です。これらの配列は、複数のレベルでネストして複雑な構造にすることができます。このような多次元配列をどのようにクエリするかが、開発者が直面する問題となっています。
PHP には、array_search()、array_key_exists()、in_array()、array_walk_recursive() など、多次元配列を処理するための組み込み関数がいくつか用意されています。この記事では、多次元配列を簡単にクエリできるようにするこれらの関数のいくつかを紹介します。
1. array_search() 関数
array_search() 関数は、配列内の指定された要素を検索し、そのキー名を返すために使用されます。配列内に複数の一致がある場合は、最初に一致したキー名が返されます。一致するものがない場合は false を返します。
array_search() 関数の構文は次のとおりです。
array_search(search_value, array, strict)
ここで、search_value は検索する値、array は検索する値です。検索される配列。strict は、検索時に型の一致が必要かどうかを指定するために使用されるオプションのブール値です。 true に設定すると、search_value と同じ型で値が等しい要素のキー名が返され、false または未設定の場合は、値が等しい要素のキー名のみが返されます。
以下はサンプル コードです:
$students = [ ['name' => '张三', 'age' => 20, 'gender' => '男'], ['name' => '李四', 'age' => 18, 'gender' => '女'], ['name' => '王五', 'age' => 22, 'gender' => '男'] ]; // 查询名为'李四'的学生的索引 $index = array_search('李四', array_column($students, 'name')); echo "李四的索引是:" . $index;
この例では、array_search() 関数と array_column() 関数を使用します。 array_column() 関数は、指定された列の値を含む新しい配列を返すために使用されます。この例では、すべての生徒の名前列を返し、この配列内の「李思」という名前の要素のインデックスをクエリして、出力します。
2. array_key_exists() 関数
array_key_exists() 関数は、指定されたキー名が配列内に存在するかどうかを判断するために使用されます。存在する場合は true を返し、存在しない場合は false を返します。この関数の構文は次のとおりです。
array_key_exists(key, array)
このうち、key は検索するキー名、array は検索する配列です。
以下はサンプル コードです:
$students = [ '张三' => ['age' => 20, 'gender' => '男'], '李四' => ['age' => 18, 'gender' => '女'], '王五' => ['age' => 22, 'gender' => '男'] ]; // 判断'李四'是否存在 if (array_key_exists('李四', $students)) { echo "存在名为'李四'的学生"; } else { echo "不存在名为'李四'的学生"; }
この例では、array_key_exists() 関数を使用して、配列内にキー名が存在するかどうかを判断します。入力されたキー名 '李思' が配列に存在する場合は、「'李思' という名前の学生がいます」を返し、そうでない場合は、「'李思' という名前の学生はいません」を返します。
3. in_array() 関数
in_array() 関数は、指定された値が配列内に存在するかどうかを判断するために使用されます。存在する場合は true を返し、存在しない場合は false を返します。この関数の構文は次のとおりです。
in_array(needle, haystack, strict)
ここで、needle は検索する値、haystack は検索する配列、strict はオプションです。ブール値。検索時に型一致が必要かどうかを指定するために使用されます。 true に設定すると針と同じ型で値が等しい要素が返され、false または未設定の場合は値が等しい要素のみが返されます。
以下はサンプル コードです:
$fruits = ['apple', 'banana', 'orange']; // 判断是否存在'banana' if (in_array('banana', $fruits)) { echo "存在'banana'这个水果"; } else { echo "不存在'banana'这个水果"; }
この例では、in_array() 関数を使用して、配列に値が存在するかどうかを判断します。入力値「バナナ」が配列内に存在する場合は「果物「バナナ」が存在する」を返し、それ以外の場合は「果物「バナナ」は存在しない」を返します。
4. array_walk_recursive() 関数
array_walk_recursive() 関数は、多次元配列を再帰的に走査し、指定されたコールバック関数を実行するために使用されます。この関数の構文は次のとおりです。
array_walk_recursive(array, callback, userdata)
そのうち、array は再帰的に走査される多次元配列であり、callback は再帰的に走査されるコールバック関数です。が実行され、userdata がコールバックに渡されます。関数のオプション データです。
以下はサンプル コードです:
$students = [ ['name' => '张三', 'grades' => ['math' => 80, 'english' => 85]], ['name' => '李四', 'grades' => ['math' => 90, 'english' => 95]], ['name' => '王五', 'grades' => ['math' => 85, 'english' => 80]] ]; // 计算每个学生的平均分 function calculate_average(&$value, $key, $userdata) { $sum = array_sum($value['grades']); $value['average'] = round($sum / count($value['grades']), 2); } array_walk_recursive($students, 'calculate_average'); print_r($students);
この例では、array_walk_recursive() 関数を使用して、複数の生徒の名前と成績を含む 2 次元配列を走査し、各生徒の平均を計算します。スコア。コールバック関数 Calculate_average() では、array_sum() 関数を使用してすべての被験者の合計スコアを計算し、それを被験者の数で割って平均スコアを計算します。最後に、計算結果を各生徒の配列に追加し、print_r() 関数を使用して配列全体を出力します。
概要
多次元配列のクエリは、PHP 開発における一般的な要件です。この記事では、array_search()、array_key_exists()、in_array()、array_walk_recursive() などのいくつかの組み込み関数を紹介します。これらの関数は、多次元配列のクエリと処理を簡単に行うのに役立ちます。読者がここから何かを得られることを願っています。
以上がPHPクエリ多次元配列の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。