Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL nadrzędny podrzędny Ta sama tabela; PHP Nest Children w rodzicach jako wielowymiarowa tablica

Referencje, z zaletami, których kolejność nie ma znaczenia (węzły podrzędne mogą pojawić się przed ich węzłami nadrzędnymi):

 $tree = array('NULL' => array('children' => array()));
 foreach($array as $item){
    if(isset($tree[$item['id']])){
       $tree[$item['id']] = array_merge($tree[$item['id']],$item);
    } else {
       $tree[$item['id']] = $item;
    }

    $parentid = is_null($item['id_parent']) ? 'NULL' : $item['id_parent'];
    if(!isset($tree[$parentid])) $tree[$parentid] = array('children' => array());
    //this & is where the magic happens: any alteration to $tree[$item['id']
    //  will reflect in the item $tree[$parentid]['children'] as they are the same
    //  variable. For instance, adding a child to $tree[$item['id']]['children]
    //  will be seen in 
    //  $tree[$parentid]['children'][<whatever index $item['id'] has>]['children]
    $tree[$parentid]['children'][] = &$tree[$item['id']];
 }
 $result = $tree['NULL']['children'];
 //always unset references
 unset($tree);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spring data JPA tylko jeden klucz złożony to problem z automatyczną inkrementacją

  2. Jak zapobiegać wstrzykiwaniu SQL w aplikacjach LAMP?

  3. Docker mysql nie może połączyć się z kontenerem

  4. Przewodnik po projektowaniu bazy danych dla koszyka zakupów online w MySQL

  5. Strona internetowa z najlepszymi praktykami w wielu językach