多次元配列を線形構造に単純化する
多次元配列を対応する 1 次元に変換することは、特に数値キーのみを含む配列。ただし、PHP の配列関数を利用して、これらの構造を平坦化するシンプルかつ洗練されたソリューションがあります。
回答の説明
このソリューションでは、array_reduce() 関数を次の関数と組み合わせて使用します。 array_merge()。 array_reduce() は、配列の各要素を反復処理し、ユーザー定義関数を適用して、最終的に削減された値を累積します。この場合、2 つの配列を 1 つの配列に結合する array_merge() 関数を渡します。
reduce 操作の初期値として空の配列を指定することで、最終結果が確実に多次元配列のすべての要素を含む配列。各反復では、現在のサブ配列とアキュムレータが連結され、入力が効果的に平坦化されます。
実装例
質問で提供された多次元配列を考えてみましょう:
$array = [ [0 => 'foo', 1 => 'bar', 2 => 'hello'], [0 => 'world', 1 => 'love'], [0 => 'stack', 1 => 'overflow', 2 => 'yep', 3 => 'man'], ];
この配列をフラット化するには、次のコードを使用するだけです。コード:
$result = array_reduce($array, 'array_merge', []);
これにより、目的の 1 次元配列が生成されます:
$result = [ 'foo', 'bar', 'hello', 'world', 'love', 'stack', 'overflow', 'yep', 'man' ];
以上がPHP で多次元数値キー配列を効率的にフラット化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。