Необходимо написать функцию, на входе которой будет одномерный/многомерный массив,
который должен быть преобразован в hidden поля формы, при сабмите (POST) которой мы получим точно такой же массив как на входе.
Иными словами:
ARRAY (INPUT)
=>
<form method="post"><input type="hidden" name="…" value="…">……</form>
=>
submit
=>
ARRAY (OUTPUT) = ARRAY (INPUT)
Задачу необходимо решить именно функциональным методом. Serialize не предлагать )
Вот код, который я написал.
$hard = array();
$hard['a'] = 'aa';
$hard['b']['b3']['f'] = 'f2';
$hard['b']['b1'] = 'b1';
$hard['b']['b2'] = 'b2';
$hard['c']['c1']['qqq'] = 'qqq';
$hard['c']['c2'] = 'c2';
function draw_hidden($array, $name = '')
{
static $level;
foreach( $array as $key => $value )
{
if( $level == 0 )
{
$name = $key;
}
else
{
$name .= '['.$key.']';
}
if( is_array($value) && sizeof($value) > 0 )
{
$level++;
draw_hidden($value, $name);
$level –;
}
else
{
$input = ' <input type="text" name="'.$name.'" value="'.$value.'">';
echo '<b>'.$name.'</b>'.htmlentities($input).'<br>';
}
}
}
draw_hidden($hard);
Но он работает неправильно. Укажите, в чем ошибка и помогите довести код до ума