PHP では、配列はさまざまな種類のデータを格納できる非常に強力で柔軟なデータ構造です。 PHP 配列には、1 次元配列、2 次元配列、多次元配列などがあります。
実際の開発プロセスでは、データの走査と処理を容易にするために、多くの場合、2 次元配列を 1 次元配列に変換する必要があります。この記事では、PHPで2次元配列を1次元配列に変換する方法を紹介します。
PHP の 2 次元配列
PHP では、2 次元配列とは、配列内の要素も配列である配列です。例:
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) );
ここでは、3 つの要素を含む $students 配列を作成します。各要素は、学生の名前、年齢、成績を含む配列です。
2 次元配列を 1 次元配列に変換する
PHP では、2 次元配列を 1 次元配列に変換する方法が数多くあります。
方法 1: ループ トラバーサル
2 次元配列の各要素をループして、それを新しい 1 次元配列にマージできます。
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array(); foreach ($students as $student) { foreach ($student as $key => $value) { $newArray[$key][] = $value; } } print_r($newArray);
上記のコードの出力結果は次のとおりです:
Array ( [name] => Array ( [0] => John [1] => Mike [2] => Mary ) [age] => Array ( [0] => 23 [1] => 21 [2] => 22 ) [score] => Array ( [0] => 90 [1] => 80 [2] => 85 ) )
ご覧のとおり、ループ トラバーサルを通じて、2 次元配列を新しい連想配列に変換します。各要素は対応しています。 2 次元配列の各要素のキー値を元の値に戻します。
方法 2: array_column 関数を使用する
PHP には、多次元配列から指定された列を取得するための array_column 関数が用意されています。この関数を使用して、各生徒の名前、年齢、スコアを取得し、それらを新しい 1 次元配列にマージできます。
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array( "name" => array_column($students, "name"), "age" => array_column($students, "age"), "score" => array_column($students, "score") ); print_r($newArray);
上記のコードの出力結果は、方法 1 と同じです。
方法 3: array_reduce 関数を使用する
array_reduce 関数を使用すると、2 次元配列を反復処理し、それらを新しい 1 次元配列にマージできます。
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array_reduce($students, function($carry, $student) { foreach ($student as $key => $value) { $carry[$key][] = $value; } return $carry; }, array()); print_r($newArray);
上記のコードの出力結果は、方法 1 と同じです。
方法 4: カスタム関数
関数をカスタマイズして、2 次元配列を 1 次元配列に変換することもできます。
function array_convert($arr) { $result = array(); foreach ($arr as $row) { foreach ($row as $key => $value) { $result[$key][] = $value; } } return $result; } $students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array_convert($students); print_r($newArray);
上記のコードの出力結果は、方法 1 と同じです。
概要
PHP では、ループ トラバーサル、array_column 関数の使用、array_reduce 関数の使用、カスタム 関数の使用など、2 次元配列を 1 次元配列に変換するさまざまな方法があります。機能。どの方法を選択するかは、特定のシナリオのニーズと開発習慣によって異なります。実際の開発プロセスでは、データをより効率的に処理するために、これらの方法を柔軟に使用する必要があります。
以上がPHPの二次元配列から一次元配列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。