如何在php中将树结构转换为平面数组


how to convert tree structure into flat array in 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}

我已经为您的输出创建了一个函数。请试试这个

$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;
}