PHP の 2 次元配列は、大量のデータを保存するために使用できる非常に一般的なデータ構造であり、非常に柔軟性があります。通常、2 次元配列を処理するときは、特定の条件に基づいて特定の要素を除外するか、これらの要素の構造を再編成する必要があります。この場合、2D 配列を別の形式に変換すると非常に便利です。この記事では、PHPのarray関数を使って2次元配列を指定したキー値の形式に変換する方法を紹介します。
1. 2 次元配列とは
2 次元配列は、複数の 1 次元配列で構成されるデータ構造です。これは、各行が 1 次元配列を表し、列が 1 次元配列の要素を表すテーブルとして考えることができます。
たとえば、次のコードは 2 次元配列を作成します:
$data = array( array("name" => "Tom", "age" => 20), array("name" => "Jerry", "age" => 18) );
この配列には 2 つの要素が含まれており、各要素は「名前」と「年齢」を含む 1 次元配列です。2 つのキーおよび対応する値。この 2 次元配列は、人々のグループの名前と年齢情報を表すことができます。
2. 2 次元配列の変換
2 次元配列を処理する前に、まず、1 次元配列を指定されたキーと値のペアの形式に変換する方法を見てみましょう。 PHP には、この関数を実装するための非常に実用的な関数 array_column() が用意されています。 array_column() 関数は、多次元配列から指定された列を削除し、その列の値を返すことができます。例:
$data = array( array("name" => "Tom", "age" => 20), array("name" => "Jerry", "age" => 18) ); $names = array_column($data, "name"); print_r($names);
出力:
Array ( [0] => Tom [1] => Jerry )
上記のコードでは、array_column() 関数を使用して $data 配列の "name" 列を抽出し、新しいファイルに格納します。配列 $names。このようにして、すべての名前情報を簡単に取得できます。
実際の開発では、通常、次のようなさまざまな条件に従って 2 次元配列を整理する必要があります。年齢ごとに分類したり、イニシャルなどで並べ替えたりします。現時点では、PHP の配列関数を使用してこの目標を達成できます。以下に、一般的に使用されるいくつかの方法を紹介します。
(1) array_reduce() 関数を使用する
array_reduce() 関数は、配列内のすべての要素に対して累積計算を実行し、結果を返すことができます。この関数を使用すると、指定されたキー値に従って 2 次元配列内の要素を結合できます。
たとえば、上記の $data 配列を「年齢」値に従って分類したい場合は、次のコードを使用できます:
$result = array_reduce($data, function ($acc, $item) { $age = $item['age']; if (!isset($acc[$age])) { $acc[$age] = array(); } $acc[$age][] = $item; return $acc; }, array()); print_r($result);
出力:
Array ( [20] => Array ( [0] => Array ( [name] => Tom [age] => 20 ) ) [18] => Array ( [0] => Array ( [name] => Jerry [age] => 18 ) ) )
上記のコードでは、PHP 匿名関数と array_reduce() 関数を使用しました。無名関数の最初のパラメータ $acc は、累積された結果を格納するために使用されるアキュムレータを表し、2 番目のパラメータ $item は配列内の各要素を表します。関数本体では、まず要素の "age" 値を取得し、次に "age" 値に対応する配列がアキュムレータに既に存在するかどうかを確認します。存在しない場合は、新しい配列を作成し、最後に追加します。この配列内の要素。
(2) array_map() 関数を使用する
array_map() 関数は、配列内の各要素を処理し、新しい配列を返すことができます。この関数を使用すると、指定されたキー値に従って 2 次元配列の要素を変更できます。
たとえば、次のコードは、上記の $data 配列内の各要素の「name」キー値を要素の「age」値に変更し、それを新しい配列に格納します。 ##出力:
$result = array_map(function ($item) { $age = $item['age']; $item['name'] = $age; return $item; }, $data); print_r($result);
上記のコードでは、PHP 匿名関数と array_map() 関数を使用しました。無名関数のパラメータ $item は、配列内の各要素を表します。関数本体では、まず要素の「age」値を取得し、次にその値を要素の「name」キーに割り当てます。
3. まとめ
以上は、PHP で 2 次元配列を指定したキー値に変換する方法です。 () 変換する関数 1 次元配列を指定されたキーと値のペアの形式に変換します。
array_reduce() 関数を使用して、指定されたキー値に従って 2 次元配列を結合します。
以上がPHP で 2 次元配列を指定されたキー値に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。