数组封装成html格式

hotup 2009-06-14 01:28:19

$arr1=array(array('AAA','bbb',1),
array('AAA','ccc',0),
array('AAA','ddd',0),
array('BBB','aaa','111'),
array('BBB','aaa','222'));
//*将上边数组封装成,如果值为0的话,丢弃
AAA
bbb
1
ccc
ddd
BBB
aaa
111
aaa
222

*/


<ul>
<li>AAA
<ul><li>bbb
<ul><li>1</li></ul></li>
<li>ccc</li>
<li>ddd</li></ul></li>
......
</ul>
...全文
33 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotup 2009-06-15
  • 打赏
  • 举报
回复
不加 isset 会现出象错误提示,类似于undefined xxxx
v轻扬v 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hotup 的回复:]
01:14:43 凌晨??强人啊
if(!($newarr[$temp[0]][$temp[1]]))------------->if(!isset($newarr[$temp[0]][$temp[1]]))
[/Quote]
呵,晚上学习精神集中点。嗯,这句代码是该这么写更合理些。
hotup 2009-06-15
  • 打赏
  • 举报
回复
01:14:43 凌晨??强人啊
if(!($newarr[$temp[0]][$temp[1]]))------------->if(!isset($newarr[$temp[0]][$temp[1]]))
hotup 2009-06-15
  • 打赏
  • 举报
回复
厉害啊,虽然我已经写出来了,并且和你的不一样,我是直接输出的,懒得转到另一数组中去,
还有就是,代码有几个运行时有几个警告,显示xxx未定义,还有最后就是不需要‘\n’ 回车符;

这个我是用来处理从mysql查询到的分类的,
+----------------------+--------------+--------+
| name | name | name |
+----------------------+--------------+--------+
| televisions | tube | NULL |
| televisions | lcd | NULL |
| televisions | plasma | NULL |
| portable electronics | mp3 players | flash |
| portable electronics | mp3 players | u-disk |
| portable electronics | cd players | NULL |
| portable electronics | 2 way radios | NULL |
+----------------------+--------------+--------+
7 rows in set (0.00 sec)
v轻扬v 2009-06-15
  • 打赏
  • 举报
回复
先对数组进行进行行列转换后再使用循环就容易达到目的,以下代码测试可行:

$arr1=array(array('AAA','bbb',1),
array('AAA','ccc',0),
array('AAA','ddd',0),
array('BBB','aaa','111'),
array('BBB','aaa','222'));

function arr_rowtocol($arr)//定义函数对二维数组进行行列转换
{
$newarr=array();
foreach($arr as $temp)
{
if(!($newarr[$temp[0]][$temp[1]]))
$newarr[$temp[0]][$temp[1]]=array();
array_push($newarr[$temp[0]][$temp[1]],$temp[2]);
}
return $newarr;
}

$newarr=arr_rowtocol($arr1);//调用数组行列转换函数

echo "<ul>";
foreach($newarr as $key=>$value)
{
echo "<li>$key \n<ul>";
foreach($value as $key1=>$value1)
{
echo "<li>$key1 \n<ul>";
foreach($value1 as $li)
{
if($li!=0)
echo "<li>$li </li>";
}
echo "</ul></li>";
}
echo "</ul></li>";
}
echo "</ul>";
neohope 2009-06-14
  • 打赏
  • 举报
回复
循环+echo

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧