php获取当前栏目下面所有栏目id
文章描述:
PHP如何获取当前栏目下面所有子级栏目以及子级的子级栏目id
数组
$member = array(
array('id'=>1, 'pid'=>0, 'nickname' => '手机'),
array('id'=>2, 'pid'=>1, 'nickname' => 'oppo'),
array('id'=>3, 'pid'=>1, 'nickname' => 'iphone'),
array('id'=>4, 'pid'=>2, 'nickname' => 'oppo r11s'),
array('id'=>5, 'pid'=>3, 'nickname' => 'iphone4'),
array('id'=>6, 'pid'=>3, 'nickname' => 'iphone5'),
array('id'=>7, 'pid'=>3, 'nickname' => 'iphone6'),
array('id'=>8, 'pid'=>0, 'nickname' => '电脑')
);
方法
function ids($data,$id)
{
$Teams=array();//最终结果
$mids=array($id);//第一次执行时候的用户id
do {
$othermids=array();
$state=false;
foreach ($mids as $valueone) {
foreach ($data as $key => $valuetwo) {
if($valuetwo['pid']==$valueone){
$Teams[]=$valuetwo['id'];//找到我的下级立即添加到最终结果中
$othermids[]=$valuetwo['id'];//将我的下级id保存起来用来下轮循环他的下级
array_splice($data,$key,1);//从所有会员中删除他
$state=true;
}
}
}
$mids=$othermids;//foreach中找到的我的下级集合,用来下次循环
} while ($state==true);
return $Teams;
}
使用
$id = 1;
$ids = ids($member,$id);
echo "<pre>";
print_r($ids);
array_unshift($ids, $id);
print_r($ids);
发布时间:2021/11/10
发表评论