继续问昨天数组的问题,请大家帮帮忙.在线焦急等待 本身数组就错了,PHP可以定义[0] => Array的格式吗???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function foo($ar, $pid=0) { foreach($ar as $v) { if($v['pid'] == $pid) return $v; if($t = foo($v['child'], $pid)) return $t; } return false;}print_r(foo($d, 2)); //提取pid=2的节点极其字节点其实按原生成算法。只需将if($v[pid] == 0) {中的0换成所需的pid就可直接生成了因为你提供的这种结构的数组是不易保存在数据库中的,实际保存在数据库中的是二维平面结构 唠叨老大您的这个函数当pid=0的时候似乎也不对,没有把全部的pid=0的内容取出来. 这个数组换成xml会好弄一些吧 这样似乎就可以了.function foo($ar, $pid=0) { foreach($ar as $v) { if($v['pid'] == $pid) return $v; if($t = foo($v['child'], $pid)) return $t; } return false;}//下面的函数取得指定pid的值,同时调用foo函数function fo($ar, $pid=0) { $d=array(); $i=0; foreach($ar as $v) { if($v['pid'] == $pid) $d[$i++]=$v; elseif($t = foo($v['child'], $pid)) $d[$i++]=$t; } return $d;} 当$pid=0时就是原数组了,有必要取子吗?function foo($ar, $pid=0) { if($pid==0) return $ar; foreach($ar as $v) { if($v['pid'] == $pid) return $v; if($t = foo($v['child'], $pid)) return $t; } return false;}编程不存在固定的模式,关键在于你的思维方式 您的函数没有全部取出来print_r(foo($ar, 1)); //提取pid=1的节点极其字节点这个只取了一部分的pid=1的节点. 增加一个索引书组。[父id]={子id1,id2,id3} 求解:phpcms模板怎样转码? php正则表达式问题 win2003+iis6+apache2+PHP配置环境问题 php:请问ajax无刷post登陆后,为什么不可以生产cookie啊? PHP目录管理函数 关于$sql的插入语句 统计在线用户正在哪个页面浏览 真的不知道問題出在什麼地方 连接oracle817时提示找不到OCILogon(),还要怎么配置? 请教web service文件使用 帮我看看PHP的这个配置 如何来提高这样的查询速度
foreach($ar as $v) {
if($v['pid'] == $pid) return $v;
if($t = foo($v['child'], $pid)) return $t;
}
return false;
}print_r(foo($d, 2)); //提取pid=2的节点极其字节点其实按原生成算法。只需将
if($v[pid] == 0) {
中的0换成所需的pid就可直接生成了
因为你提供的这种结构的数组是不易保存在数据库中的,实际保存在数据库中的是二维平面结构
function foo($ar, $pid=0) {
foreach($ar as $v) {
if($v['pid'] == $pid) return $v;
if($t = foo($v['child'], $pid)) return $t;
}
return false;
}
//下面的函数取得指定pid的值,同时调用foo函数
function fo($ar, $pid=0) {
$d=array();
$i=0;
foreach($ar as $v) {
if($v['pid'] == $pid) $d[$i++]=$v;
elseif($t = foo($v['child'], $pid)) $d[$i++]=$t;
}
return $d;
}
if($pid==0) return $ar;
foreach($ar as $v) {
if($v['pid'] == $pid) return $v;
if($t = foo($v['child'], $pid)) return $t;
}
return false;
}编程不存在固定的模式,关键在于你的思维方式
print_r(foo($ar, 1)); //提取pid=1的节点极其字节点这个只取了一部分的pid=1的节点.
[父id]={子id1,id2,id3}