Referanslar listesini sıralama

1 Cevap php

Id, adı, ref_id - I (aslında) üç sütun içeren bir tablo var.

Ben ref_id ile sütunlar, örneğin gelen kimliği ile sütunun altındaki girintili olacağını girintili bir listesini oluşturmak istiyoruz:

Name      | ID | Ref ID
about       1    0
story       2    1
history     3    1
contact     4    0
help        5    0
map         6    4
directions  7    4

Ideal olarak bu gibi bir şey oluşturmak istiyoruz:

about
- story
- history
contact
- map
- directions
help

Ne ideal olacaktır SQL çağrıları ve cpu kullanımı az miktarda bunu yaratacak bir şey, yukarıdaki gibi tam listesini değilse dönmek bir MySQL sorgu. Bunu yaptığını düşünebilirsiniz tek yolu inanılmaz derecede savurgan ve ben daha iyi bir yolu yoktur eminim.

Şimdiden teşekkürler!

1 Cevap

PHP version

$in = array(
    array('about',1,0),
    array('story',2,1),
    array('history',3,1),
    array('contact',4,0),
    array('help',5,0),
    array('map',6,4),
    array('directions',7,4)
);
foreach ($in as $k => $v) {
    if ($v[2] === 0) { $out[$v[1]][0] = $v; };
    if ($v[2] > 0) { $out[$v[2]][1][] = $v;};
}
foreach ($out as $k => $v) {
    echo $v[0][0] . "\n";
    if (isset($v[1])) {
    foreach ($v[1] as $sk => $sv) {
        echo " - " .$sv[0] . "\n";
    }
    }
}