私はこのような配列を持っています。標準配列からツリー配列
しかし、私はこのようなレベルのキーを使用して配列を設定したいです。
、私はこのコードを使用していますが、私はこれではない適切な解決策を知っているので、どのようにあなたは私を助けることができますか?
$array = array(0=>array('tag'=>'one','level'=>1),1=>array('tag'=>'two','level'=>2),2=>array('tag'=>'three','level'=>3));
foreach($array as $v){
$level = $v['level'];
if($level > 0){
$count[1] = count($tree);
if($level === 1){
$tree[$count[1]]['tag'] = $v['tag'];
}
if($level > 1){
$count[2] = (isset($tree[$count[1]-1]['array']))?count($tree[$count[1]-1]['array']):0;
if($level == 2){
$tree[$count[1]-1]['array'][$count[2]]['tag'] = $v['tag'];
}
if($level > 2){
$count[3] = (isset($tree[$count[1]-1]['array'][$count[2]-1]['array']))?count($tree[$count[1]-1]['array'][$count[2]-1]['array']):0;
if($level == 3){
$tree[$count[1]-1]['array'][$count[2]-1]['array'][$count[3]]['tag'] = $v['tag'];
}
if($level > 3){
$count[4] = (isset($tree[$count[1]-1]['array'][$count[2]-1]['array'][$count[3]-1]['array']))?count($tree[$count[1]-1]['array'][$count[2]-1]['array'][$count[3]-1]['array']):0;
if($level == 4){
$tree[$count[1]-1]['array'][$count[2]-1]['array'][$count[3]-1]['array'][$count[4]]['tag'] = $v['tag'];
}
}
}
}
}
}
私が実行したときに動作するように見えます。https://3v4l.org/cWt9A – chris85
はいそれは動作しますが、配列に深いレベルがある場合、このコードは機能しませんので、私は異なるタイプのソリューションが必要です。 –
あなたは最初のスクリーンショットがあなたが今質問した質問には関連していないことを尋ねるべきです。 – chris85