ghergedan adlı üyeden alıntı: mesajı görüntüle
$arr değerini referansla iletmeniz gerekirdi.

function liste($id,&$arr=array()){
    $q=("select * from birimler where parent=$id);
    if ($q) {
        if (!in_array($id, $arr)) array_unshift($arr, $id);
        foreach($q as $value){
            array_push($arr,$value->id);
            liste($value->id,$arr);
        }
    }
    return $arr;
}
Çözümü bi arkadas iletti ama yarın bunu da deneyeceğim teşekkür ederim