2016-09-07 60 views
1

我的数组看起来像这样。如何在从数据库中提取数据并将其转换为树形结构后,将树结构转换为平面数组php

array(1) { 
    [6]=> 
    array(1) { 
    ["sub_id"]=> 
    array(3) { 
     [15]=> 
     array(1) { 
     ["sub_id"]=> 
     array(0) { 
     }  
     } 
     [16]=> 
     array(1) { 
     ["sub_id"]=> 
     array(0) { 
     } 
     } 
     [21]=> 
     array(1) { 
     ["sub_id"]=> 
     array(0) { 
     } 
     }  
    }  
    } 
} 

,但我想要的只是按键的平板阵列 阵{6,15,16,21}

+0

use array_keys $ ss = array_keys($ array_values);的print_r($ SS); – JYoThI

+0

只读取第一个元素,忽略子元素 – user1675595

+0

使用带SPL的[第一个答案](http://stackoverflow.com/a/1320259/3859027),但使用'RecursiveIteratorIterator :: SELF_FIRST'标志 – Ghost

回答

0

我已经为你的输出功能。请试试这个。

$result = get_elements($array); 

function get_elements($array) { 
    $result = array(); 
    foreach($array as $key => $row) { 
     $result[] = $key; 
     if(count($row['sub_id']) > 0) { 
      $result = array_merge($result,get_elements($row['sub_id'])); 
     } 
    } 
    return $result; 
} 
+0

真棒! !谢啦兄弟 – user1675595