PHP は、非常に柔軟で多用途なプログラミング言語です。その中でも、多次元配列はプログラミングにおいて最も一般的なデータ構造の 1 つです。ただし、場合によっては、統合処理のために多次元配列を 1 次元配列にフラット化する必要があります。この記事では、多次元配列を1次元配列に変換する方法を詳しく紹介します。
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 次元配列に追加し、最後に新しい配列を返します。
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 次元配列に変換されます。
再帰や関数型プログラミングに詳しくない場合は、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 サイトの他の関連記事を参照してください。