私は、レンタルした音楽ディスクのxmlバックアップを持っています。そこにはどのフォルダ(アルバム)とトラックがあったかを調べるためにアクセスしようとしています。これまでは、XMLがどのように構築されたのかということから、すべてのファイルの場所を含む配列を作成しました。すべてのフォルダはコンマで区切られています。今私はそれをすべてマージし、フォルダ構造を持つ配列に変換したい。そこから、その配列を使用して、私の古い音楽トラックを探るためのエクスプローラのようなインターフェースを構築することができます。ファイルリストの配列をマージされたフォルダ構造の配列に変換する
以下の配列は、私が今持っていると変換するために何をしたいの例です。
[
[x, xy, xya, {file: one}],
[x, xy, xya, {file: two}],
[x, xy, xyz, {file: one}],
[x, xy, {file: one}],
[x, xz, {file: one}],
[x, xz, {file: two}],
[x, {file: one}],
[x, {file: two}],
[y, {file: one}]
]
私は上記の配列は、以下のようなものに変換したい:
[
{folder: x,
content:
[
{folder: xy,
content:
[
{folder: xya,
content:
[
{file: one},
{file: two}
]
},
{folder: xyz,
content:
[
{file: one}
]
},
{file: one}
]
},
{folder: xz,
content:
[
{file: one},
{file: two}
]
},
{file: one},
{file: two}
]
},
{folder: y,
content:
[
{file: one}
]
}
]
私はまだ試しておくが、正確な解決策が見つかりませんでした。何か案は?
最初のコードには多次元配列があり、上のコードでは配列内にオブジェクトがあります。 – itzikb
再帰関数を試すことができます。要素タイプis_array、is_object array_key_existsがフォルダやファイルなどであるかどうかを確認してください。 – manuerumx
ヒントをお寄せいただきありがとうございます。おそらく 'type:folder'をフォルダに追加し、' type:file'をファイルに追加することは、再帰関数を使用するのではなく、扱いやすくなります。しかし、まだ解決策が見つかりませんでした。 –