PHP プログラムを開発する場合、コード内で配列データを使用する必要がよくありますが、使用される 2 次元配列も非常に一般的です。ただし、場合によっては、2D 配列を 1D 配列に変換する必要があります。これは、PHP アプリケーションを作成するときに非常に便利です。以下は、PHP で 2D 配列を 1D 配列に変換する方法の詳細な手順です。
1. foreach を使用して配列を走査する
2 次元配列を 1 次元配列に変換するには、まず foreach ステートメントを使用して配列内の要素を走査する必要があります。以下は、トラバーサルのサンプル コードです。
$two_dimensional_array = array( array('name' => '张三', 'age' => 20), array('name' => '李四', 'age' => 21), array('name' => '王五', 'age' => 22) ); $one_dimensional_array = array(); foreach ($two_dimensional_array as $row) { foreach ($row as $key => $value){ array_push($one_dimensional_array, $value); } }
このコードは、2 次元配列を 1 次元配列 $one_digital_array に変換します。上記のコードでは、$two_digital_array の各行を反復処理し、各行の値を $one_digital_array 配列に追加します。
2. array_walk_recursive 関数を使用する
PHP では、array_walk_recursive 関数を使用して 2 次元配列を 1 次元配列に変換することもできます。 array_walk_recursive 関数を使用すると、多次元配列内のすべての要素をウォークスルーできます。以下はサンプル コードです:
$two_dimensional_array = array( array('name' => '张三', 'age' => 20), array('name' => '李四', 'age' => 21), array('name' => '王五', 'age' => 22) ); $one_dimensional_array = array(); array_walk_recursive($two_dimensional_array, function ($item, $key) use (&$one_dimensional_array) { array_push($one_dimensional_array, $item); });
上記のコードでは、array_walk_recursive 関数を使用して 2 次元配列を 1 次元配列 $one_digital_array に変換します。コールバック関数では、各要素を $one_digital_array 配列に追加し、コールバック関数のパラメータで参照記号 & を使用することで、関数内での処理中に配列の内容を変更できるようになります。
3. array_column 関数を使用する
PHP には、2 次元配列内の指定された列のすべての値を抽出して変換できる array_column という関数が用意されています。 1次元配列に変換します。以下はサンプル コードです:
$two_dimensional_array = array( array('name' => '张三', 'age' => 20), array('name' => '李四', 'age' => 21), array('name' => '王五', 'age' => 22) ); $one_dimensional_array = array_column($two_dimensional_array, 'name');
上記のコードでは、array_column 関数を使用して各行の「name」列を抽出し、それを新しい 1 次元配列に変換しました。この関数は、特に大きな 2 次元配列から特定の列を抽出する必要がある場合に非常に便利です。
要約:
上記は、PHP の 2 次元配列を 1 次元配列に変換する 3 つの方法です。ニーズに応じて最適な方法を選択できます。小さな配列を処理する必要がある場合は、foreach メソッドを使用する方が簡単で高速です。大きな配列を扱う場合は、実行効率を向上させる array_walk_recursive または array_column を使用することにも利点があります。
以上がPHPで2次元配列を1次元に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。