Array traversal problems
$arr =array (
' Ten ' =>array (
' =>0 '
),
' =>array ' (
' =>array ' (
' =>0 '
),
' =>array ' (
' =>0 '
)
)
)
With this array, how can I get the path from the top to each root node?
such as the final result:
$a []= ' 10,12 ';
$a []= ' 15,30,35 ';
$a []= ' 15,31,40 ';
------to solve the idea----------------------
$arr =array (' =>array ' =>0), ' =>array ' (' + ' =>array (' =>0 '), ' + ' =>array (' + ' =>0));
$a =array ();
foreach ($arr as $k = = $v) {
$a [$k][]= $k;
if (Is_array ($v)) {
foreach ($v as $kk = = $VV) {
$a [$k][]= $kk;
}
}
}
Var_dump ($a);
------to solve the idea----------------------
$arr =array (' =>array ' =>0), ' =>array ' (' =>array '), ' =>0 ' (' + ' =>array), ' (' =>array ' =>0));
$a =array ();
$i = 0;
foreach ($arr as $k = = $v) {
$a [$i][]= $k;
if (Is_array ($v)) {
foreach ($v as $kk = = $VV) {
$a [$i][]= $kk;
if (Is_array ($VV)) {
foreach ($vv as $kkk = = $VVV) {
$j = 0;
if ($j ==0) {
unset ($a [$i]);
$a [$i. '-'. $i][]= $k;
$a [$i. '-'. $i][]= $kk;
$a [$i. '-'. $i][]= $kkk;
}else{
$a [$i][]= $kkk;
}
}
}
$i + +;
}
}
$i + +;
}
Var_dump ($a);
------to solve the idea----------------------
This is the end.
$arr =array (' =>array ' =>0), ' =>array ' (' =>array '), ' =>0 ' (' + ' =>array), ' (' =>array ' =>0));
$a =array ();
$i = 0;
foreach ($arr as $k = = $v) {
$a [$i][]= $k;
if (Is_array ($v)) {
foreach ($v as $kk = = $VV) {
$a [$i][]= $kk;
if (Is_array ($VV)) {
foreach ($vv as $kkk = = $VVV) {
unset ($a [$i]);
$a [$i. '-'. $i][]= $k;
$a [$i. '-'. $i][]= $kk;
$a [$i. '-'. $i][]= $kkk;
}
}
$i + +;
}
}
}
Var_dump (Array_values ($a));
------to solve the idea----------------------
$arr =array (
' Ten ' =>array (
' =>0 '
),
' =>array ' (
' =>array ' (
' =>0 '
),
' =>array ' (
' =>0 '
)
)
);
Print_r (foo ($arr));
function foo ($ar) {
$res = Array ();
foreach ($ar as $k = = $v) {
if (Is_array ($v)) {
foreach (foo ($v) as $r) $res [] = "$k, $r";
}else $res [] = $k;
}
return $res;
}
Array
(
[0] = 10,12
[1] = 15,30,35
[2] = 15,31,40
)
------to solve the idea----------------------
Wrote a method.
$arr =array (
' Ten ' =>array (
' =>0 ',
' =>array ' (
' + ' = 0,
' + ' = Array (
' =>0 '
)
)
),
' =>array ' (
' =>array ' (
' =>0 '
),
' =>array ' (
' =>0 '
)
)
);
function foo ($arr, & $str = ")
{
foreach ($arr as $key = $value)
{
$str. = ",". $key;
if (Is_array ($value))
{
Foo ($value, $STR);
}else{
Print_r (LTrim ($str, ', '));
Echo '
';
}
$str = RTrim ($str, ', '. $key);
}
}
Foo ($arr);
------to solve the idea----------------------
$arr =array (
' Ten ' =>array (
' =>0 ',
' =>array ' (
' + ' = 0,
' + ' = Array (
' =>0 '
)
)
),
' =>array ' (
' =>array ' (
' =>0 '
),
' =>array ' (
' =>0 '
)
)
);
function foo ($arr, & $str = ")
{
foreach ($arr as $key = $value)
{
$str. = ",". $key;
if (Is_array ($value))
{
Foo ($value, $STR);
}else{
Print_r (LTrim ($str, ', '));
Echo '
';
}
$str = RTrim ($str, ', '. $key);
}
}
Foo ($arr);
------to solve the idea----------------------
$arr =array (
' Ten ' =>array (
' =>0 ',
' =>array ' (
' + ' = 0,
' + ' = Array (
' =>0 '
)
)
),
' =>array ' (
' =>array ' (
' =>0 '
),
' =>array ' (
' =>0 '
)
)
);
function foo ($arr, & $str = ")
{
foreach ($arr as $key = $value)
{
$str. = ",". $key;
if (Is_array ($value))
{
Foo ($value, $STR);
}else{
Print_r (LTrim ($str, ', '));
Echo '
';
}
$str = RTrim ($str, ', '. $key);
}
}
Foo ($arr);
------to solve the idea----------------------
$arr =array (
' Ten ' =>array (
' =>0 '
),
' =>array ' (
' =>array ' (
' =>0 '
),
' =>array ' (
' =>0 '
)
)
);
function my ($arr, $pid =10) {
Static $item =array ();
static $s = ';
foreach ($arr as $k = = $v) {
if (Is_array ($v)) {
foreach ($v as $key = = $value) {
$s. = $key. ', ';
if (Is_array ($value)) {
My ($value, $k);
}
}
}else{
$s. = $k;
}
$s = $pid. ', '. $s;
$item []= $s;
$s = ";
}
return $item;
}
$arr =my ($arr);
Array_pop ($arr);
Print_r ($arr);
Array
(
[0] = 10, 12,
[1] = 15,30,35
[2] = 15,31,40
)