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

发表评论