$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