Помогите с рекурсией

Ralph

Дикий столяр
Помогите с рекурсией

Практически никогда не использовал рекурсию.Вот теперь решил потренироваться.Но застрял на простом алгоритме.Пытаюсь получить все значения массива:

-~{}~ 02.08.08 20:36:

?
PHP:
<?php
error_reporting(E_ALL);
function show_var($a)
{
static $off=0;
global $array_of_show_var;
if ($off==0) {$array_of_show_var=array();echo '<p align="left">';}
$array_of_show_var[$off]=$a;
$name='a1["'.$array_of_show_var[0].'"]';
$sname='<font color="blue">$'.$array_of_show_var[0].'</font>';
for ($i=1;$i<=$off;$i++) {$name=$name.'["'.$array_of_show_var[$i].'"]';$sname=' '.$sname.'[ <font color="green">'.$array_of_show_var[$i].'</font> ]';}
-~{}~ 02.08.08 20:39:

PHP:
$var=${$name};
echo '<b>'.$sname.'</b> = ';
if (is_array($var)) {echo '<b>ARRAY</b><br/>';$off++;foreach ($var as $k=>$v) {show_var($k);} $off--;}
else {echo '<b>'.$var.'</b>';}
echo '<br/>';
if ($off==0) {echo '</p>';}
return;
}
?>
Никак не могу получить значение вложенного массива.Где же я ошибся ?
 

Духовность™

Продвинутый новичок
.Пытаюсь получить все значения массива
пример:
PHP:
function getData(&$in, $i=0)
{
    foreach ($in as $key => $value)
    {
        if (is_array($value)) {
            getData($in[$key], ++$i);
        }
        else
        {
           echo str_repeat('&nbsp;', $i).$value.'<br>';
        }
    }
}

$array = array(1, 'hellow', array('one', 'two', array('php', 'mysql')), 'end');

getData($array);
Армян
+1
 

Ralph

Дикий столяр
Спасибо за пример.Как я понял,ошибкой было пытаться нагородить нелепую многоэтажную конструкцию вместо использования ссылки. Правда,о существовании ссылок я узнал вчера в 7 часов вечера :) До этого переменные были для меня ячейками памяти с уникальным именем и значение может передаваться только присвоением
 

Духовность™

Продвинутый новичок
Ralph
дело тут совсем не в ссылках. данная конструкция работает и без ссылок. я просто продемонстрировал общий принцип.
 
Сверху