ホームページ  >  記事  >  バックエンド開発  >  1 次元配列を「ツリー」配列に編成する方法を見つける

1 次元配列を「ツリー」配列に編成する方法を見つける

WBOY
WBOYオリジナル
2016-06-23 14:01:461111ブラウズ

さて...質問の名前は少しばかげています...
次のような配列入力があります:

[{id=>'00'},{id=>'01'},{id=>'22'},{id='0001'},{id=>'2234'}]

次に、この配列を次の形式に整理したいと思います:
[{id=>'00',children=>{{id=>'0001'}} },{id=>'01',children=>{} },{id=>'22',children=>{{id=>'2234'}} }]

ID は文字列です。数字が 2 桁 (2、4、6、8...) である場合、2 桁の ID を除き、ID の他の数字は常に上位レベルの ID を見つけることができます (つまり、要素 A: 2234 は必ず 22 の ID を見つけます [つまり left( 0,len( A[id])-2)] 複数のトラバーサルも可能ですが、次の機能を実現したいと思います:
1. 正しく整理できる
2.各編成の後、最初の配列のように元の配列が削減されます。2 桁すべてを同時に処理した後、実際には元の配列の ID 桁 2 は必要ありません。すべての設定を解除するだけです。アドバイスを求めてください。

ディスカッションへの返信(解決策)

2次元配列 array [id][child] を作成 元の配列を一度走査するだけ

2桁の数字が出てきたら、存在するかどうかを判断し、存在しない場合は挿入する コードは使えました。テスト中なので最適化されていませんでしたが、使ってみると実用上問題があることがわかったので、全データを一度に読み込んでバックグラウンドで整理する方法はやめました

rreee

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