PHP で再帰アルゴリズムを使用して、3 次元配列を 1 次元配列に変換できます。解決策は次のとおりです: 1. PHP サンプル ファイルを作成する; 2. 関数を「array_ flatten」として定義し、空の配列 "result" を定義します。 3. "array_ flatten" 関数を使用して、"$people" 3 次元配列を "$ flat_array" 1 次元配列に変換し、 "$result" の値を取得します。 4. 使用します。 「print_r」関数を使用して、結果が 1 次元配列であることを計算します。
このチュートリアルのオペレーティング システム: Windows 10 システム、PHP バージョン 8.1.3、Dell G3 コンピューター。
PHP 開発プロセスでは、多次元配列を扱うことがよくあります。場合によっては、操作を容易にするために多次元配列を 1 次元配列に変換する必要があります。この記事では、PHP の 3 次元配列を 1 次元配列に変換する方法とコードの実装方法を紹介します。
PHP における 3 次元配列とは
PHP では、3 次元配列とは、配列内の要素が依然として配列であることを意味します。この配列にはまだ配列があります。一般に、PHP 配列は n 次元を持つことができますが、実際の開発では通常 3 次元を超えることはありません。
例:
$people = array( array( "name" => "Tom", "age" => 30, "hobbies" => array("reading", "swimming", "travelling") ), array( "name" => "Jack", "age" => 25, "hobbies" => array("running", "hiking", "coding") ) );
上の $people 配列は 2 つの要素を含む 3 次元配列です。各要素は 2 次元配列で、1 つの要素には名前の配列が含まれます、年齢と興味。
PHP で 3 次元配列を 1 次元配列に変換する方法
3 次元配列の場合、再帰アルゴリズムを使用して変換できます。 1次元配列に変換します。
(1) array_ flatten という名前の関数を定義します この関数には、変換する配列を表すパラメータが含まれています。
(2) 変換結果を格納する空の配列 result を定義します。
(3) 配列内の各要素をスキャンします。
要素が配列の場合は、array_ flatten 関数を再帰的に呼び出して 1 次元配列に変換し、結果をマージします。結果配列の中央。要素が配列でない場合、要素は結果の配列に直接追加されます。
(4) 結果配列を最終結果として返します。
コードは次のとおりです:
function array_flatten($array) { $result = array(); foreach ($array as $item) { if (is_array($item)) { $result = array_merge($result, array_flatten($item)); } else { $result[] = $item; } } return $result; }
この関数を使用すると、PHP の 3 次元配列を 1 次元配列に簡単に変換できます。
$flat_array = array_flatten($people); print_r($flat_array);
上の例では、array_ flatten 関数を呼び出して $people の 3 次元配列を $ flat_array の 1 次元配列に変換し、 print_r 関数を使用して出力しました。
出力結果は次のとおりです。
Array ( [0] => Tom [1] => 30 [2] => reading [3] => swimming [4] => travelling [5] => Jack [6] => 25 [7] => running [8] => hiking [9] => coding )
出力結果は、$people 配列のすべての要素を含む 1 次元配列であることがわかります。
概要
この記事では、再帰アルゴリズムを使用して、PHP の 3 次元配列を 1 次元配列に変換する方法を紹介します。この方法は多次元配列を容易に扱えるため、実際の開発において配列操作をより効率的に行うことができます。多次元配列を扱う場合は、あらゆる次元の配列に適応でき、実装が簡単で、コードの再利用性が高いため、再帰的アルゴリズムを使用することをお勧めします。
以上がPHPで3次元配列を1次元配列に変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。