php を使用して array#1 を array#2 構造に変換するにはどうすればよいですか?
最初の配列は、生物のリストに対するデータベース クエリの結果です。各生物は、目、科、属、種で分類されます。階層的には、種はさまざまな属の子分類であり、属分類はさまざまな科などの子分類です。
名前空間に関しては、次のように読むことができます。
インデックス[0]のアイテム ---> 半翅目.ミリダエ.カナカミリス
インデックス[1]のアイテム ---> 半翅目.ミリダエ.Neophloeobia.incisa
array#1 のキー間には、次のような一種の親子関係があります。
- 「Rank_Order」値は「Rank_Family」値の親です
- 「Rank_Family」値は「Rank_Genus」値の親です
- 「Rank_Genus」値は「Rank_Species」値の親です
アレイ#1:
Array
(
[0] => Array
(
['Rank_Order'] => 'Hemiptera'
['Rank_Family'] => 'Miridae'
['Rank_Genus'] => 'Kanakamiris'
['Rank_Species'] => ''
)
[1] => Array
(
['Rank_Order'] => 'Hemiptera'
['Rank_Family'] => 'Miridae'
['Rank_Genus'] => 'Neophloeobia'
['Rank_Species'] => 'incisa'
)
[2] => Array
(
['Rank_Order'] => 'Hemiptera'
['Rank_Family'] => 'Noridae'
['Rank_Genus'] => 'Canelbia'
['Rank_Species'] => 'Arissa'
)
)
次の配列は、必要な配列構造です: array#2:
Array(
[name] => 'Hemiptera'
[children] => Array(
[0] => Array(
[name] => 'Miridae'
[children] => Array(
[0] => Array(
[name] => 'Kanakamiris'
[children] => Array(
)
)
[1] => Array(
[name] => 'Neophloeobia'
[children] => Array(
[0] => Array(
[name] => 'incisa'
[children] => Array(
)
)
)
)
)
)
[1] => Array(
[name] => 'Noridae'
[children] => Array(
[0] => Array(
[name] => 'Canelbia'
[children] => Array(
[0] => Array(
[name] => 'Arissa'
[children] => Array(
)
)
)
)
)
)
)
)
私の場合は使用できませんでしたが、スタックオーバーフローで同様の質問が表示されます。例えば。php-reorder-array-to-reflect-parent-id-hierarchy