PHP では、2 次元配列は非常に一般的なデータ構造です。ただし、場合によっては、2 次元配列を 1 次元配列に変換する必要があります。この記事では、この機能を実現するいくつかの方法について説明します。
方法 1: foreach ループを使用する
最も基本的な方法の 1 つは、foreach ループを使用して 2 次元配列全体を走査し、各値を 1 次元配列に追加することです。コードは次のとおりです。
$twoDimensionalArray = array( array('fruit'=>'apple', 'color'=>'red'), array('fruit'=>'banana', 'color'=>'yellow'), array('fruit'=>'grape', 'color'=>'purple') ); $oneDimensionalArray = array(); foreach($twoDimensionalArray as $key=>$value){ foreach($value as $k=>$v){ $oneDimensionalArray[] = $v; } } print_r($oneDimensionalArray); //输出结果如下: Array ( [0] => apple [1] => red [2] => banana [3] => yellow [4] => grape [5] => purple )
方法 2: array_merge 関数を使用する
もう 1 つの方法は、2 つ以上の配列を 1 つの配列にマージする array_merge 関数を使用することです。この関数を使用すると、2D 配列の各行を 1D 配列に変換し、それらを 1 つの配列にマージできます。コードは次のとおりです。
$twoDimensionalArray = array( array('fruit'=>'apple', 'color'=>'red'), array('fruit'=>'banana', 'color'=>'yellow'), array('fruit'=>'grape', 'color'=>'purple') ); $oneDimensionalArray = array(); foreach($twoDimensionalArray as $value){ $oneDimensionalArray = array_merge($oneDimensionalArray, array_values($value)); } print_r($oneDimensionalArray); //输出结果如下: Array ( [0] => apple [1] => red [2] => banana [3] => yellow [4] => grape [5] => purple )
方法 3: array_reduce 関数の使用
最後の方法は、array_reduce 関数を使用することです。これは、配列内の各値にコールバック関数を適用し、単一の値。この例では、array_reduce 関数を使用して、2 次元配列の各行を 1 次元配列に変換し、すべての行の 1 次元配列を 1 つの大きな配列にマージできます。コードは次のとおりです:
$twoDimensionalArray = array( array('fruit'=>'apple', 'color'=>'red'), array('fruit'=>'banana', 'color'=>'yellow'), array('fruit'=>'grape', 'color'=>'purple') ); $oneDimensionalArray = array_reduce($twoDimensionalArray,function($carry,$item){ return array_merge($carry,array_values($item)); },array()); print_r($oneDimensionalArray); //输出结果如下: Array ( [0] => apple [1] => red [2] => banana [3] => yellow [4] => grape [5] => purple )
概要:
上記の 3 つのメソッドは、2 次元配列を 1 次元配列に変換するのに役立ちます。大量のデータを扱う場合は、そのパフォーマンスと効率をテストする必要がある場合があります。パフォーマンスと適合性を比較して、タスクに最も適した方法を選択してください。
以上がPHPで2次元配列を1次元配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。