У меня такой массив:
Array
(
[0] => Array
(
[0] => Array
(
[0] => Array
(
[0] => a
[1] => d
[2] => Array(...)
)
)
)
[1] => Array
(
[0] => Array
(
[0] => Array
(
[0] => a
[1] => e
[2] => Array(...)
)
)
)
)
Я хотел бы создать из этого массива набор флажков, вложенных в инструкцию HTML <li>
. Я создал функцию для создания вложенных <li>
function nested_li(array $array){
$output = '<ul>';
foreach($array as $key => $value){
$output .= "<li><strong>$key: </strong>\n";
if(is_array($value)){
$output .= nested_li($value)."\n";
}else{
$output .= $value."\n";
}
$output .= '</li>'."\n";
}
$output .= '</ul>'."\n";
return $output;
}
Теперь проблема состоит в том, чтобы создать в этом вложенный список флажков, например:
<input type="checkbox" name="check[0][0][0][0]" value="a"/>
<input type="checkbox" name="check[0][0][0][1]" value="d"/>
<input type="checkbox" name="check[1][0][0][0]" value="a"/>
<input type="checkbox" name="check[1][0][0][1]" value="e"/>
Мне нужно сделать это для системы категорий, чтобы выбрать категорию для отображения.
Надеюсь, это поможет вам :)
использовать рекурсивный активатор
$arr=array
(
0 => array
(
0 => array
(
0 => array
(
0 => 'a',
1 => 'd',
2 => 's' //or Array(...)
),
),
),
1 => array
(
0 => array
(
0 => array
(
0 => 'a',
1 => 'e',
2 => 'l'
),
),
),
);
$flat = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
foreach($flat as $item) {
$a[]= $item;
}
foreach($a as $i)
{
echo '<input type="checkbox" name="'.$i.'" value="a"/>'.$i;
}