ホームページ  >  記事  >  バックエンド開発  >  PHPで多次元配列を取得する方法

PHPで多次元配列を取得する方法

王林
王林オリジナル
2023-05-11 09:38:07855ブラウズ

PHP プログラミングでは、多次元配列は最も一般的なデータ構造の 1 つです。多次元配列とは、配列内の各要素も配列であることを意味し、この種類の配列は 1 次元配列よりも構造化されています。多次元配列を操作する場合、値を取得する方法が必要になりますので、この記事では多次元配列の取得方法を紹介します。

1. 基本操作

2 次元配列の値を取得するのは非常に簡単で、1 次元配列と同様に角括弧と添字を使用するだけです。例: $arr0。これにより、配列の最初の要素の 2 番目の値を取得できます。

2. ループトラバーサル

多次元配列に 3 つ以上の次元がある場合、基本的な操作の使用は非常に面倒になります。現時点では、ループを使用して、多次元配列の値を簡単に走査して取得できます。コードは次のように実装されます。

foreach($arr as $key1=>$val1){
    foreach($val1 as $key2=>$val2){
        echo $arr[$key1][$key2];
    }
}

ご覧のとおり、外側のループで 1 次元配列の添字と値を取得し、内側のループに入ると、次の添字と値を取得します。二次元配列を入力して出力するだけです。

3. 再帰的取得

多次元配列の次元が多い場合、ループ トラバーサルを使用するのは非常に面倒になります。現時点では、再帰関数を使用して多次元配列の値を取得できます。

再帰関数の実装方法は、現在取得している要素が配列であるかどうかを判定し、配列である場合は最後の次元の値が得られるまで再帰的に取得を続けるというものです。サンプルコードは以下の通りです:

function get_val($arr){
    foreach($arr as $val){
        if(is_array($val)){
            get_val($val);
        }else{
            echo $val;
        }
    }
}

ご覧のとおり、まず現在取得した値が配列であるかどうかを判定し、配列である場合は再帰関数を呼び出し続け、そうでない場合は出力します。このようにして、配列の次元数に関係なく、再帰関数を使用してその中の値を取得できます。

4. array_column の使用

PHP には、多次元配列内の指定された列を取得するのに役立つ array_column 関数が用意されています。この関数の構文は次のとおりです。

array_column($arr, $column_key [, $index_key]);

このうち、$arr パラメータは取得する値の配列、$column_key パラメータは取得する列の添字、 $index_key パラメータは、新しい配列の添字です。 $index_key が指定されていない場合は、0 から始まる数値インデックスが使用されます。

サンプル コードは次のとおりです。

$arr = array(
    array('id'=>1, 'name'=>'Tom', 'age'=>18),
    array('id'=>2, 'name'=>'Jerry', 'age'=>20),
    array('id'=>3, 'name'=>'Lucy', 'age'=>22)
);
$name_arr = array_column($arr, 'name');

上記のコードでは、array_column 関数を使用して、配列 $arr 内の 'name' 列を取得します。最後の $name_arr 配列は、配列内のすべての名前のコレクションです。各要素は、配列内の各要素の「name」値に対応する文字列です。

概要:

PHP では、多次元配列の取得は非常に基本的かつ重要な操作です。この記事の導入により、基本的な操作、ループトラバーサル、再帰的取得、array_column 関数などのいくつかの取得方法を知ることができます。さまざまな取得方法がさまざまなシナリオに適しており、実際の状況に応じて選択して使用できます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。