Пытаюсь разобраться с PHP, но я абсолютно не знаю, как это сделать.
Я хочу взять этот массив:
$things = array('vehicle' => array('car' => array('hatchback', 'saloon'),'van','lorry'),
'person' => array('male', 'female'),
'matter' => array('solid', 'liquid', 'gas'),
);
и превратить это в нечто подобное в HTML:
Автомобиль
хэтчбэк
салон
фургон
грузовой автомобиль
Человек
мужчина
женский
Иметь значение
твердый
жидкость
газ
Пробовал несколько решений от поиска, но не может заставить что-либо работать вообще.
Любая помощь будет потрясающей, спасибо.
То, что вы ищете, называется рекурсией. Ниже приведена рекурсивная функция, которая вызывает себя, если значение ключа массива также является массивом.
function printArrayList($array)
{
echo "<ul>";
foreach($array as $k => $v) {
if (is_array($v)) {
echo "<li>" . $k . "</li>";
printArrayList($v);
continue;
}
echo "<li>" . $v . "</li>";
}
echo "</ul>";
}
Попробуйте что-то вроде:
<?php
function ToUl($input){
echo "<ul>";
$oldvalue = null;
foreach($input as $value){
if($oldvalue != null && !is_array($value))
echo "</li>";
if(is_array($value)){
ToUl($value);
}else
echo "<li>" + $value;
$oldvalue = $value;
}
if($oldvalue != null)
echo "</li>";
echo "</ul>";
}
?>
Код источника: Многомерный массив в неупорядоченный список HTML