Đây là giải pháp của tôi cho nó:
function cost_centres_format($items,$parent_id,$array=array()) {
foreach($items as $item) {
if($item->parent_id == $parent_id) {
$array[] = $item;
if($item->internal_purchase_order_cost_centre_id>0) {
$array = cost_centres_format($items,$item->internal_purchase_order_cost_centre_id,$array);
}
}
}
return $array;
}
$array = cost_centres_format($items,0);
Dầu diesel (id:5) sẽ nằm dưới Bảo dưỡng xe (id:4) vì thứ tự ban đầu của nó. Bạn có thể thực hiện sắp xếp bổ sung theo tên nhưng trong ví dụ của bạn Chữ viết hoa (id:3) nằm dưới Chi phí chung (id:2).