ホームページ >バックエンド開発 >PHPの問題 >PHPで2次元配列を1次元配列に変換する方法

PHPで2次元配列を1次元配列に変換する方法

PHPz
PHPzオリジナル
2023-04-23 10:23:171511ブラウズ

配列処理を行う際、多次元配列を一次元配列に変換する必要がある場合がありますので、この記事では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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。