2016-09-07 4 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 ($ сс); – JYoThI

+0

Выбирается только первый элемент, дочерние элементы игнорируются – user1675595

+0

используйте [первый ответ] (http://stackoverflow.com/a/1320259/3859027) с 'SPL', но используйте флаг' 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

awesome! !! Спасибо, брат – user1675595

Смежные вопросы