php 获取当前分类id所有上级分类id
function getParents($id, $list,$parents = []) { //改变数组的key值 $list = array_column($list, NULL, 'id'); // echo "<pre>"; print_r($list);die; //改变后的数组 // $list = [ // 1 => ['id' => 1, 'name' => '陕西', 'parent_id' => 0], // 2 => ['id' => 2, 'name' => '西安', 'parent_id' => 1], // 3 => ['id' => 3, 'name' => '长安区', 'parent_id' => 2], // 4 => ['id' => 4, 'name' => '河南', 'parent_id' => 0], // 5 => ['id' => 5, 'name' => '郑州', 'parent_id' => 4], // 6 => ['id' => 6, 'name' => '河北', 'parent_id' => 0], // 7 => ['id' => 7, 'name' => '石家庄', 'parent_id' => 6], // 8 => ['id' => 8, 'name' => '新华区', 'parent_id' => 7] // ]; if(!isset($list[$id])) { return []; } $parents[] = $id; $info = $list[$id]; //print_r($info); if ($info['parent_id'] == 0) { return $parents; } return getParents($info['parent_id'], $list, $parents); }
开始调用
$list = [ ['id' => 1, 'name' => '陕西', 'parent_id' => 0], ['id' => 2, 'name' => '西安', 'parent_id' => 1], ['id' => 3, 'name' => '长安区', 'parent_id' => 2], ['id' => 4, 'name' => '河南', 'parent_id' => 0], ['id' => 5, 'name' => '郑州', 'parent_id' => 4], ['id' => 6, 'name' => '河北', 'parent_id' => 0], ['id' => 7, 'name' => '石家庄', 'parent_id' => 6], ['id' => 8, 'name' => '新华区', 'parent_id' => 7] ]; $ids = getParents(5, $list); echo "<pre>";print_r($ids);
//效果如下
Array
(
[0] => 5
[1] => 4
)
代码改变世界!