ホームページ >バックエンド開発 >PHPチュートリアル >PHP で多次元数値キー配列を効率的にフラット化するにはどうすればよいですか?

PHP で多次元数値キー配列を効率的にフラット化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-12 21:53:14325ブラウズ

How Can I Efficiently Flatten a Multidimensional Numeric-Keyed Array in PHP?

多次元配列を線形構造に単純化する

多次元配列を対応する 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 サイトの他の関連記事を参照してください。

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