Jump to content
php.lv forumi

PHP array tree


litt

Recommended Posts

Datubāzē glabājās ieraksti, kuriem ir id, title, par - parentID, ch - children count. Ar kverija palīdzību no bāzes dabonu šādu masīvu (ORDER BY par, title)

Array
(
   [0] => Array
       (
           [id] => 1
           [par] => 0
           [ch] => 2
           [title] => Main page
       )

   [1] => Array
       (
           [id] => 4
           [par] => 1
           [ch] => 0
           [title] => mape 1
       )

   [2] => Array
       (
           [id] => 5
           [par] => 1
           [ch] => 2
           [title] => mape 2
       )

   [3] => Array
       (
           [id] => 6
           [par] => 5
           [ch] => 1
           [title] => apaksh1
       )

   [4] => Array
       (
           [id] => 8
           [par] => 5
           [ch] => 0
           [title] => apaksh2
       )

   [5] => Array
       (
           [id] => 7
           [par] => 6
           [ch] => 0
           [title] => sub
       )

)

Rezultātā vajag šādu "koku" no šī masīva

Array
(
   [0] => Array
       (
           [id] => 1
           [par] => 0
           [ch] => 2
           [title] => Main page
           [chld] => Array
               (
                   [0] => Array
                       (
                           [id] => 4
                           [par] => 1
                           [ch] => 0
                           [title] => mape 1
                           [chld] => Array
                               (
                               )

                       )

                   [1] => Array
                       (
                           [id] => 5
                           [par] => 1
                           [ch] => 2
                           [title] => mape 2
                           [chld] => Array
                               (
                                   [0] => Array
                                       (
                                           [id] => 6
                                           [par] => 5
                                           [ch] => 1
                                           [title] => apaksh1
                                           [chld] => Array
                                               (
                                                   [0] => Array
                                                       (
                                                           [id] => 7
                                                           [par] => 6
                                                           [ch] => 0
                                                           [title] => sub
                                                           [chld] => Array
                                                               (
                                                               )

                                                       )

                                               )

                                       )

                                   [1] => Array
                                       (
                                           [id] => 8
                                           [par] => 5
                                           [ch] => 0
                                           [title] => apaksh2
                                           [chld] => Array
                                               (
                                               )

                                       )

                               )

                       )

               )

       )
)

Ir kāds veids kā ar PHP to visu ātri apstrādāt un dabūt vēlamo rezultātu (izejas masīvs var būt liels, tapēc svarīga ir ātrdarbība)?

Link to comment
Share on other sites

taatad pateikshu kaa tas ir, bet skriptu raksti pats,

 

sakārto array secībā pēc [par]...

ņemam tos kuriem nav [par]

 

meklējam ieksh pārējiem array kur meklējamā array [par] = esošā array [id]

taisam jaunu key [chld] liekam iekšā to array kuram [par] = esosā array [id]

 

un tā uz priekšu tikai!

 

 

nav man tik daudz laika lai rakstītu to skriptu

Edited by [Ya]
Link to comment
Share on other sites

×
×
  • Create New...