PHPで2次元配列の値をクエリする方法

PHPz
リリース: 2023-04-18 10:13:23
オリジナル
2477 人が閲覧しました

PHP は Web 開発で広く使用されているプログラミング言語であり、強力な配列演算機能を備えています。 PHP では、配列は最も重要で一般的に使用されるデータ型の 1 つです。このデータ構造により、開発者は一連の関連する値を保存し、それらの値を取得して操作することができます。

PHP では、2 次元配列は、各配列要素に配列が含まれる特殊な配列タイプです。このデータ構造は、行列、テーブル、その他の複雑なデータ構造を保存するために一般的に使用されます。 2 次元配列には複数の配列が含まれるため、クエリを実行する際にはさまざまなアプローチが必要になります。

この記事では、PHP で 2 次元配列の値をクエリするさまざまな方法を紹介します。

方法 1: foreach ループを使用する

PHP では、foreach ループを使用して、2 次元配列内のすべての配列要素を簡単に走査できます。以下は 2D 配列の例です:

$students = array(

array('name' => 'John', 'age' => 20, 'grade' => 'A'),
array('name' => 'Jane', 'age' => 21, 'grade' => 'B'),
array('name' => 'Jim', 'age' => 22, 'grade' => 'C')
ログイン後にコピー

);

次に、この 2D 配列students から名前「Jim」を取得します。 ' 成績。

foreach ループを使用して各生徒をループし、名前が「Jim」かどうかを確認できます。一致するものが見つかった場合は、学生の成績を返すことができます。このメソッドを実装するサンプル コードは次のとおりです。

foreach ($students as $student) {

if ($student['name'] == 'Jim') {
    echo $student['grade'];
    break;
}
ログイン後にコピー

}

上記のコードでは、$students を反復処理します。配列を作成し、それを $student という名前の新しい配列に割り当てます。次に、$student の "name" キーが "Jim" と等しいかどうかを確認します。一致するものが見つかった場合は、echo コマンドを使用して生徒の「成績」値を出力します。

foreach ループは配列全体を走査するため、必要な値が見つかった場合は、break コマンドを使用して検索を停止する必要があることに注意してください。このアプローチの明らかな欠点は、配列全体をループするため、大規模な配列ではパフォーマンスの問題が発生する可能性があることです。

方法 2: for ループを使用する

2 次元配列内の値をクエリする別の方法は、for ループを使用することです。この方法は foreach ループを使用するよりも高速であり、検索している配列の位置がわかっているため、不必要なループの繰り返しをスキップできます。以下は、for ループを使用してこのメ​​ソッドを実装するサンプル コードです:

for ($i = 0; $i < count($students); $i ) {

if ($students[$i]['name'] == 'Jim') {
    echo $students[$i]['grade'];
    break;
}
ログイン後にコピー

}

上記のコード スニペットでは、for ループを使用して $students 配列内の各要素を反復処理し、$i 変数を使用して現在の反復子を追跡します。各生徒の「名前」キーが「ジム」と等しいかどうかを確認し、一致するものが見つかった場合は、echo コマンドを使用してその生徒の「成績」値を出力します。

$i

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

PHP には array_column() という便利な関数があり、これを使用して配列から 1 つの列の値を返すことができます。この関数は、配列と返される列名という 2 つのパラメータを受け取ります。以下は、array_column() 関数を使用して、上記の $students 配列から「成績」列を返すサンプル コードです。

$grades = array_column($students, 'grade');

これで、返された $grades 配列に特定の値が含まれているかどうかを確認するだけで、必要な値を見つけることができます。以下は、このメソッドを実装するサンプル コードです:

$student_name = 'Jim';
$grades = array_column($students, 'grade', 'name');
if (array_key_exists( $student_name, $grades)) {

echo $grades[$student_name];
ログイン後にコピー

}

このコードでは、array_column() 関数を使用して $students 配列の「grade」列を取得し、「name」を使用します。 " 列をキーとして連想配列 $grades が作成されます。次に、$grades 配列に特定のキー (つまり生徒名) が含まれているかどうかを確認し、対応する「成績」値を出力します。

概要

PHP では、2 次元配列の値をクエリするさまざまな方法がたくさんあります。この記事では、foreach ループの使用、for ループの使用、array_column() 関数の使用という 3 つの最も一般的な方法について説明します。

foreach または for ループの使用は、より強力な検索機能を必要とする小さな配列または大きな配列に適しています。対照的に、array_column() 関数は、単一列のフィルタリングに適しています。実際の開発では、開発者は特定の要件に応じて 2 次元配列の値をクエリするための適切な方法を選択できます。

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

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