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

Jak przekonwertować tablicę DB z relacją rodzic-syn na tablicę wielowymiarową?

Oto moje rozwiązanie:

function cost_centres_format($items,$parent_id,$array=array()) {
    foreach($items as $item) {
        if($item->parent_id == $parent_id) {
            $array[] = $item;
            if($item->internal_purchase_order_cost_centre_id>0) {
                $array = cost_centres_format($items,$item->internal_purchase_order_cost_centre_id,$array);
            }
        }
    }
    return $array;
}
$array = cost_centres_format($items,0);

Olej napędowy (id:5) będzie niższy niż konserwacja pojazdu (id:4) ze względu na swoje pierwotne zamówienie. Możesz wykonać dodatkowe sortowanie według nazwy, ale w twoim przykładzie Kapitał (id:3) był poniżej kosztów ogólnych (id:2).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zakłopotany wyjątek SQL dla JDBC

  2. Czy Django podwójnie koduje ciąg znaków Unicode (utf-8?)?

  3. Jak zwrócić wyniki zapytania jako listę oddzieloną przecinkami w MySQL?

  4. mySQL SELECT nadchodzące urodziny

  5. Jak w MySQL możemy stwierdzić, czy indeks tabeli jest zgrupowany, czy nie?