Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MYSQL Parent Child Same Table; PHP Nest Children bên trong cha mẹ như một mảng đa chiều

Tài liệu tham khảo, với những ưu điểm mà thứ tự không quan trọng (các nút con có thể đứng trước các nút mẹ của chúng):

 $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. thiết lập phiên bản cơ sở dữ liệu đích để di chuyển bàn làm việc mysql

  2. MySQL chọn bản ghi X hàng đầu cho từng cá nhân trong bảng

  3. Chọn hàng cuối cùng trong MySQL

  4. Giao dịch MySQL:CHỌN + CHÈN

  5. Trình tạo truy vấn không chèn dấu thời gian