一个关于无限评论的问题

今天以朋友问我论坛的无限评论回复输出问题,他已经把数据从数据库中读出来,并且通过遍历格式化好了。
现在他想输出这些数据,但是不知道一个数组是多少维的,可能一维,可能二维,也可能多维。我得第一反应是自己写个函数遍历输出,想到PHP系统函数强大,给他了一个array_walk的建议方案。如下所示:
<?php
header('Content-type:text/html;charset=UTF-8');

//模拟了一下评论数据的格式
$arr = array(
		0=>array(
			'pid'=>'0', 
			'id'=>1, 
			'name'=>'第01级', 
			'child'=>array(
				'pid'=>'1', 
				'id'=>2, 
				'name'=>'第02级', 
				'child'=>array(
					'pid'=>'2', 
					'id'=>3, 
					'name'=>'第03级', 
					'child'=>array(
						'pid'=>'3', 
						'id'=>4, 
						'name'=>'第04级', 
						'child'=>array()
					  )
				)
			)
		),
		
		1=>array(
			'pid'=>'0', 
			'id'=>1, 
			'name'=>'第11级', 
			'child'=>array(
				'pid'=>'1', 
				'id'=>2, 
				'name'=>'第12级', 
				'child'=>array(
					'pid'=>'2', 
					'id'=>3, 
					'name'=>'第13级', 
					'child'=>array(
						'pid'=>'3', 
						'id'=>4, 
						'name'=>'第14级', 
						'child'=>array()
					  )
				)
			)
		)
);

//bool array_walk ( array &array, callback funcname [, mixed userdata] )
array_walk($arr, 'walk_node');

//一个回调函数。
function walk_node($item, $key, $userdata='自定义数据'){
	if (is_array($item)) {
		echo $item['name'],'<br />';
		
		if (!empty($item['child']) ) array_walk($item, 'walk_node');
	}
}


PS:不知道是什么版本开始,PHP开始支持类似JavaScript的方式传递匿名函数,如:array_walk($array, function($item, $key, $userdata()){......});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值