ホームページ  >  記事  >  バックエンド開発  >  PHPで2D配列を1D配列に変換する方法

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

WBOY
WBOYオリジナル
2023-07-07 18:42:032545ブラウズ

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

PHP 開発では、2 次元配列を 1 次元配列に変換する必要があるシナリオによく遭遇します。この記事では、このタスクを簡単に完了するための一般的な方法をいくつか紹介します。

方法 1: ループ トラバーサルを使用する

最も単純で直接的な方法は、ループを使用して 2 次元配列をトラバースし、各要素を新しい 1 次元配列に追加することです。このメソッドを使用したコード例を次に示します。

function flattenArray($array) {
    $result = [];
    foreach ($array as $subArray) {
        foreach ($subArray as $element) {
            $result[] = $element;
        }
    }
    return $result;
}

// 测试
$twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
$oneDimensionalArray = flattenArray($twoDimensionalArray);
print_r($oneDimensionalArray);

上記のコードを実行すると、出力は次のようになります。

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9
)

メソッド 2: array_reduce 関数を使用します

PHP は、array_reduce 関数を使用します。強力な array_reduce 関数を使用すると、2 次元配列を 1 次元配列に変換できます。 array_reduce 関数は、処理対象の配列とコールバック関数をパラメータとして受け取ります。これは、配列内の値を単一の値に徐々に減らす方法を決定するために使用されます。以下は、array_reduce 関数を使用したコード例です。

function flattenArray($array) {
    return array_reduce($array, function($carry, $item) {
        return array_merge($carry, $item);
    }, []);
}

// 测试
$twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
$oneDimensionalArray = flattenArray($twoDimensionalArray);
print_r($oneDimensionalArray);

上記のコードを実行すると、出力は同じ 1 次元配列になるはずです。

方法 3: array_merge 関数を使用する

array_merge 関数を使用して、2 次元配列を 1 次元配列に変換することもできます。 array_merge 関数は、複数の配列を 1 つの配列にマージし、結果を返します。以下は、array_merge 関数を使用したコード例です。

function flattenArray($array) {
    return call_user_func_array('array_merge', $array);
}

// 测试
$twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
$oneDimensionalArray = flattenArray($twoDimensionalArray);
print_r($oneDimensionalArray);

上記のコードを実行すると、出力は同じ 1 次元配列になるはずです。

方法 4: array_walk_recursive 関数を使用する

array_walk_recursive 関数は、配列内の各要素を再帰的に走査し、コールバック処理を実行するために使用されます。以下は、array_walk_recursive 関数を使用したコード例です。

function flattenArray(&$array) {
    $result = [];
    array_walk_recursive($array, function($item) use (&$result) {
        $result[] = $item;
    });
    return $result;
}

// 测试
$twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
$oneDimensionalArray = flattenArray($twoDimensionalArray);
print_r($oneDimensionalArray);

上記のコードを実行すると、出力は同じ 1 次元配列になるはずです。

概要

この記事では、PHP で 2 次元配列を 1 次元配列に変換するための 4 つの一般的な方法を紹介します。プロジェクトのニーズや個人の習慣に合った方法を選択すると、コードの読みやすさと効率が向上します。これらの方法のうち最初の方法が最も一般的で簡単ですが、特定のシナリオでは他の方法の方が効果的である場合があります。この記事が、開発中に 2 次元配列を 1 次元配列に簡単に変換するためのこれらの方法をよりよく理解し、適用するのに役立つことを願っています。

以上がPHPで2D配列を1D配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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