2017-07-16 150 views
0

我有一個由父母和子女組成的類別數組。有人可以幫助我使用parent_id和category_id與foreach循環在層次結構中排列數組。最頂層的Parent具有「零」的parent_id。請忽略除category_id和parent_id之外的其他字段。這是我的數組。父母和子女關係數組

Array 
(
    [categories] => Array 
     (
      [0] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1527 
        [category_name] => CABIN 
        [category_description] => a seperate cabin 
        [capacity] => 100 
        [category_price] => 50000 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 0 
        [is_parent] => 0 
       ) 

      [1] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1528 
        [category_name] => C3 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1527 
        [is_parent] => 0 
       ) 

      [2] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1529 
        [category_name] => FLOOR3 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1528 
        [is_parent] => 0 
       ) 

      [3] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1530 
        [category_name] => CABIN 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 0 
        [is_parent] => 0 
       ) 

      [4] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1531 
        [category_name] => C3 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1530 
        [is_parent] => 0 
       ) 

      [5] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1532 
        [category_name] => FLOOR1 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1531 
        [is_parent] => 0 
       ) 

      [6] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1533 
        [category_name] => CABIN 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 0 
        [is_parent] => 0 
       ) 

      [7] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1534 
        [category_name] => C5 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1533 
        [is_parent] => 0 
       ) 

      [8] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1535 
        [category_name] => FLOOR1 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1534 
        [is_parent] => 0 
       ) 

      [9] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1536 
        [category_name] => CABIN 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 0 
        [is_parent] => 0 
       ) 

      [10] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1537 
        [category_name] => C3 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1536 
        [is_parent] => 0 
       ) 

      [11] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1538 
        [category_name] => FLOOR2 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1537 
        [is_parent] => 0 
       ) 

      [12] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1539 
        [category_name] => CABIN 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 0 
        [is_parent] => 0 
       ) 

      [13] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1540 
        [category_name] => ABOVE SBI 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1539 
        [is_parent] => 0 
       ) 

      [14] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1541 
        [category_name] => FLOOR2 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1540 
        [is_parent] => 0 
       ) 

      [15] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1542 
        [category_name] => Launch Pad 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 0 
        [is_parent] => 0 
       ) 

      [16] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1543 
        [category_name] => C5 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1542 
        [is_parent] => 0 
       ) 

      [17] => Array 
       (
        [workspace_id] => 1 
        [category_id] => 1544 
        [category_name] => FLOOR3 
        [category_description] => 
        [capacity] => 
        [category_price] => 
        [status] => 1 
        [created_by] => 1 
        [created_time] => 2017-07-14 07:56:54 
        [updated_by] => 1 
        [updated_time] => 2017-07-14 07:56:54 
        [label_id] => 1 
        [parent_id] => 1543 
        [is_parent] => 0 
       ) 

     ) 

) 
+1

你可以分享你預期的輸出? –

+0

如果您給我們您的預期結果,這將有所幫助 –

+0

最外面的數組應該是parent_id「0」。裏面必須有基於parent_id的孩子。 parent_id只是其父項的category_if。 @SahilGulati –

回答

0

考慮功能

function get_childs($arr, $parent_id = 0) { 
    $res = array(); 
    foreach ($arr as $row) { 
     if ($parent_id == $row['parent_id']) { 
       $childs = get_childs($arr, $row['category_id']); 
       $row['childs'] = $childs; 
       $res[] = $row; 
     } 
    } 
    return $res; 
} 

然後用這個函數來得到家長和孩子的它

$res = get_childs($arr); 
+0

非常感謝你,男人。有效 !! –