PHP でドット表記キーを使用して多次元配列を 2D 配列に変換する方法

Susan Sarandon
リリース: 2024-11-01 12:03:02
オリジナル
249 人が閲覧しました

How to Convert Multidimensional Arrays to 2D Arrays with Dot Notation Keys in PHP?

PHP のドット表記キーを使用した多次元配列から 2D 配列への変換

PHP の配列構造では、ドット表記を使用できます。ネストされた配列要素にアクセスする便利な方法。ただし、ドット表記キーを使用して多次元配列を 2D 配列に変換する必要があるシナリオもあります。

問題:

多次元配列の場合、目標は次のとおりです。これを 2D 配列に変換します。各要素には、元の配列構造内のパスを表すドット表記のキーが割り当てられます。

解決策:

RecursiveIteratorIterator と RecursiveArrayIterator を利用するクラスを使用すると、多次元配列を再帰的に走査できます。走査中に、反復の深さに基づいてキーが蓄積されます。次に、配列のリーフ値が構築されたドット表記キーに割り当てられ、目的の 2D 配列が得られます。

コード:

<code class="php">$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));
$result = array();
foreach ($ritit as $leafValue) {
    $keys = array();
    foreach (range(0, $ritit->getDepth()) as $depth) {
        $keys[] = $ritit->getSubIterator($depth)->key();
    }
    $result[ join('.', $keys) ] = $leafValue;
}</code>
ログイン後にコピー

出力:

Array
(
    [key1] => value1
    [key2.subkey] => subkeyval
    [key3] => value3
    [key4.subkey4.subsubkey4] => subsubkeyval4
    [key4.subkey4.subsubkey5] => subsubkeyval5
    [key4.subkey5] => subkeyval5
)
ログイン後にコピー

反復子クラスの再帰的性質とトラバーサル中のドット表記キーの構築を利用することにより、このコード スニペットは、多次元配列をドット表記キーを使用した 2D 配列に効果的に変換します。

以上がPHP でドット表記キーを使用して多次元配列を 2D 配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート