इसके लिए मेरा समाधान यह है:
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);
डीजल (आईडी:5) अपने मूल आदेश के कारण वाहन रखरखाव (आईडी:4) से कम होगा। आप नाम से एक अतिरिक्त प्रकार कर सकते हैं लेकिन आपके उदाहरण में कैपिटल (id:3) ओवरहेड्स (id:2) से नीचे था।