PHP 获取父分类和子分类常用递归函数

/**
 * 递归获取所有 ID
 * @param array $array 所有分类列表
 * @param [type] $id 子分类ID
 */
function get_all_parents($array, $id){
    $arr = [];
    foreach ($array as $v) {
        if($v['id'] == $id){
            $arr[] = $id;
            if($v['parent_id'] != 0){
                $arr = array_merge($arr, get_all_parents($array, $v['parent_id']));
            }
        }
    }
    return $arr;
}




/**
 *  递归获取所有层的子分类
 * @param [type] $array 所有分类列表
 * @param [type] $pid 父分类ID
 */
function get_all_child($array,$pid){
    $arr = array();
    foreach($array as $v){
        if($v['parent_id'] == $pid){
            $arr[] = $v['id'];
            $arr = array_merge($arr,get_all_child($array,$v['id']));
        };
    };
    return $arr;
}