配列処理を行う際、多次元配列を一次元配列に変換する必要がある場合がありますので、この記事ではphpで二次元配列を一次元配列に変換する方法を紹介します。
方法 1: ループ トラバーサル
簡単な方法は、foreach ループを使用して 2 次元配列をトラバースし、その要素を 1 次元配列に追加することです。
function array2To1($arr2){ $arr1 = array(); foreach($arr2 as $v){ foreach($v as $v2){ $arr1[] = $v2; } } return $arr1; }
使用例:
$arr2 = array(array(1,2),array(3,4),array(5,6)); $arr1 = array2To1($arr2); print_r($arr1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
方法 2: 再帰
もう 1 つの一般的に使用される方法は、再帰を使用して多次元配列を処理し、レイヤーごとに 1 つに剥がすことです。次元配列。
function array2To1($arr2){ $arr1 = array(); foreach($arr2 as $v){ if(is_array($v)){ $arr1 = array_merge($arr1,array2To1($v)); }else{ $arr1[] = $v; } } return $arr1; }
使用例:
$arr2 = array(array(1,2),3,array(array(4,5),6),7); $arr1 = array2To1($arr2); print_r($arr1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )
方法 3: PHP 組み込み関数を使用する
PHP には、array_reduce() など、多次元配列を処理するための組み込み関数がいくつか用意されています。 、array_merge_recursive()、call_user_func_array()など。
function array2To1($arr2){ return call_user_func_array('array_merge_recursive', $arr2); }
使用例:
$arr2 = array(array(1,2),array(3,4),array(5,6)); $arr1 = array2To1($arr2); print_r($arr1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
実際のテストの後、方法 3 を使用すると時間がかかるため、大規模な配列を処理する場合はこの方法はお勧めできません。
概要:
各方法には独自の長所と短所があり、最終的にどの方法を選択するかは、特定のニーズとシナリオによって異なります。この記事がお役に立てば幸いです。より良い方法がある場合は、コメント欄で共有してください。
以上がPHPで2次元配列を1次元配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。