usage :$nd = $newsApp2->dataSources();//walkArray ($nd, 'walkArray_printKey', 'walkArray_printValue');// prints the entire array$x = chaseToPath ($nd, 'RSS_list/English News',false);walkArray ($x, 'walkArray_printKey', 'walkArray_printValue');// prints everything under $nd['RSS_list']['English News']function &chaseToPath (&$wm, $path, $create=false) { //var_dump ($create); die(); //echo '$wm=<pre>'; var_dump ($wm);echo '</pre>'; //die(); //$path = str_replace ('/', '/d/', $path); //$path .= '/d'; $nodes = explode ('/', $path); $chase = &chase ($wm, $nodes, $create); //echo '$wm=<pre>'; var_dump ($wm);echo '</pre>'; die(); /* $dbg = array ( '$path' => $path, '$nodes' => $nodes, '$wm' => $wm, '$chase' => $chase ); echo '$dbg=<pre style="background:red;color:yellow;">'; var_dump ($dbg); echo '</pre>'; */ //die(); $false = false; if (good($chase)) { $arr = &result($chase); return $arr; } else return $false;} function &chase (&$arr, $indexes, $create=false) { if (false) { echo 'sitewide/functions.php --- $arr=<pre>'; var_dump ($arr); echo '</pre>'; echo 'sitewide/functions.php --- $indexes=<pre>'; var_dump ($indexes); echo '</pre>'; echo 'sitewide/functions.php --- $create=<pre>'; var_dump ($create); echo '</pre>'; } $r = &$arr; foreach ($indexes as $idx) { //echo 'sitewide/functions.php --- $idx=<pre>'; var_dump ($idx); var_dump (array_key_exists($idx,$r)); var_dump ($r); echo '</pre>'; if ( is_array($r) && ( $create===true || array_key_exists($idx,$r) ) ) { if ($create===true && !array_key_exists($idx,$r)) $r[$idx]=array(); //echo 'sitewide/functions.php --- $idx=<pre>'; var_dump ($idx); echo '</pre>'; $r = &$r[$idx]; } else { $err = array( 'msg' => 'Could not walk the full tree', 'vars' => array( '$idx--error'=>$idx, '$indexes'=>$indexes, '$arr'=>$arr ) ); badResult (E_USER_NOTICE, $err); $ret = false; // BUG #2 squashed return $ret; } } //echo 'sitewide/functions.php --- $r=<pre>'; var_dump ($r); echo '</pre>'; return goodResult($r);}