ホームページ >バックエンド開発 >PHPの問題 >PHPは多次元配列を1次元配列に変換します

PHPは多次元配列を1次元配列に変換します

PHPz
PHPzオリジナル
2023-05-11 10:37:36632ブラウズ

PHP は、非常に柔軟で多用途なプログラミング言語です。その中でも、多次元配列はプログラミングにおいて最も一般的なデータ構造の 1 つです。ただし、場合によっては、統合処理のために多次元配列を 1 次元配列にフラット化する必要があります。この記事では、多次元配列を1次元配列に変換する方法を詳しく紹介します。

  1. array_walk_recursive() 関数を使用して多次元配列をフラット化する

PHP では、array_walk_recursive() 関数は多次元配列の各要素を走査し、それを一次元配列に変換します。以下は、array_walk_recursive() 関数を使用して多次元配列を 1 次元配列に変換するサンプル コードです。

function array_flatten($array) {
    $flatten = [];
    array_walk_recursive($array, function($value) use(&$flatten) {
        $flatten[] = $value;
    });
    return $flatten;
}

サンプル コードでは、クロージャー関数を使用して多次元配列を走査します。 array_walk_recursive() 関数は、多次元配列を走査し、各要素を新しい 1 次元配列に追加し、最後に新しい配列を返します。

  1. array_reduce() 関数を使用して多次元配列を平坦化する

array_walk_recursive() 関数に加えて、PHP の array_reduce() 関数も多次元配列を平坦化できます。配列。以下は、array_reduce() 関数を使用して多次元配列を 1 次元配列に変換するサンプル コードです。

function array_flatten($array) {
    return array_reduce($array, function($result, $item) {
        if (is_array($item)) {
            $result = array_merge($result, array_flatten($item));
        } else {
            $result[] = $item;
        }
        return $result;
    }, []);
}

このサンプル コードでは、再帰関数を使用して多次元配列を走査します。要素が配列であるかどうかを判断することにより、配列内の各要素が走査されてマージされ、最終的に多次元配列が 1 次元配列に変換されます。

  1. foreach ループを使用して多次元配列をフラット化する

再帰や関数型プログラミングに詳しくない場合は、foreach ループを使用して多次元配列をフラット化できます。以下は、foreach ループを使用して多次元配列を 1 次元配列に変換するサンプル コードです。

function array_flatten($array) {
    $flatten = [];
    foreach ($array as $value) {
        if (is_array($value)) {
            $flatten = array_merge($flatten, array_flatten($value));
        } else {
            $flatten[] = $value;
        }
    }
    return $flatten;
}

サンプル コードでは、foreach ループを使用して多次元配列を走査し、次の処理を実行します。再帰によるさらなる走査と変換。配列である要素に移動する場合は、要素の移動と処理を続行します。配列ではない要素に移動する場合は、要素を新しい 1 次元配列に追加します。

概要

PHP で多次元配列を 1 次元配列に変換するには、array_walk_recursive() 関数、array_reduce() 関数の使用、再帰および再帰関数の使用など、さまざまな方法があります。 foreach ループは待機します。どの方法を選択するかは、実際の状況に応じて決定し、最大限の効果とコードの明瞭さを実現するために柔軟に使用する必要があります。

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

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