Tree-like infinite classification
Array ([ 1] = = Array ( [id] = 1 [name] = + World [PID] + 0 [2] = = Array ( [ ID] + 2 [name] + China [PID] + 1 [4] = = Array ( [id] + 4 [name] = + Hunan [PID] + 2 ) ) [3] = = Array ( [id] + 3 [name] = + US [pid] + 1 ) ))
Reply to discussion (solution)
itself is a tree-like, PID is not simple? Just a recursive line.
$a = Array ( 1 = = Array ( ' id ' = = 1, ' name ' = ' World ', ' pid ' = = 0, 2 = = Array ( ' id ' =&G T 2, ' name ' = ' China ', ' pid ' = + 1, 4 = = Array ( ' id ' = = 4, ' name ' = ' hu ') ', ' pid ' => ; 2, ), ), 3 = = Array ( ' id ' = + 3, ' name ' = ' Us ', ' pid ' = 1, '),) ; tree ($a); function tree ($ar) { if (! Is_array ($ar)) return; Echo '
; foreach ($ar as $item) { echo "$item [id] $item [name]"; foreach ($item as $t) { if (Is_array ($t)) { tree (Array ($t)) }}} Echo '
;}
1 World 2 China 4 Hunan 3 USA
I'll give you an interesting play (I don't know what to do with it)
$a = Array ( 1 = = Array ( //' id ' = + 1, ' name ' = = ' world ', //' pid ' = 0, 2 = = Array ( // ' id ' = 2, ' name ' = ' China ', '/ ' pid ' = + 1, 4 = = Array ( //' id ' = + 4, ' name ' = ' Hunan ') , //' pid ' = 2, ), 3 = = Array ( //' id ' = + 3, ' name ' = ' US ', //' pid ' = > 1,),) , $awesome = new Recursivetreeiterator ( new Recursivearrayiterator ($a), null, NULL, Recursiveiteratoriterator::leaves_only ); The echo $line of the foreach ($awesome as $line) . Php_eol;
|-World | |- China | \-Hunan \-USA
Grey often thanks! Cry!! It's been a few days,,,