PHP 嵌套数组到 HTML 列表
PHP nested array into HTML list
试图掌握 PHP,但我完全不知道该怎么做。
我想要这个数组:
$things = array('vehicle' => array('car' => array('hatchback', 'saloon'),'van','lorry'),
'person' => array('male', 'female'),
'matter' => array('solid', 'liquid', 'gas'),
);
然后在 HTML 中把它变成这样的东西:
- 车辆
- 汽车
- 两厢车
- 沙龙
- 面包车
- 货车
- 人
- 男
- 女
- 事情
- 实体
- 液体
- 煤气
通过搜索尝试了多种解决方案,但根本无法解决任何问题。
试试这样的东西:
<?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>";
}
?>
代码来源:Multidimensional array to HTML unordered list
你要找的是递归。下面是一个递归函数,如果数组键的值也是一个数组,它会调用自身。
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,但我完全不知道该怎么做。
我想要这个数组:
$things = array('vehicle' => array('car' => array('hatchback', 'saloon'),'van','lorry'),
'person' => array('male', 'female'),
'matter' => array('solid', 'liquid', 'gas'),
);
然后在 HTML 中把它变成这样的东西:
- 车辆
- 汽车
- 两厢车
- 沙龙
- 面包车
- 货车
- 汽车
- 人
- 男
- 女
- 事情
- 实体
- 液体
- 煤气
通过搜索尝试了多种解决方案,但根本无法解决任何问题。
试试这样的东西:
<?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>";
}
?>
代码来源:Multidimensional array to HTML unordered list
你要找的是递归。下面是一个递归函数,如果数组键的值也是一个数组,它会调用自身。
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>";
}