Çok boyutlu bir dizi oluşturmak için algoritma

0 Cevap php

Ben PHP kullanarak ve ben bir dizi ile bir görünüşte basit bir görev ile yardıma ihtiyacım var.

Bu benim örnek bir dizidir:

$arr = array(
    0  => NULL,
    1  => NULL,
    2  => NULL,
    3  => NULL,
    8  => '2',
    9  => '2',
    10 => '2',
    11 => '2',
    12 => '3',
    13 => '3',
    14 => '8',
    15 => '8',
    16 => '14',
    17 => '14',
    18 => '14'
);

The keys of the array represent the IDs (unique).
The values are the parentIDs, i.e. the ID of the parent "node". NULL means that there is no parentID (i.e. 1st dimension of the new array).

Şimdi, kendi üst kimliklerini altındaki tüm alt öğeleri olan bir yeni, çok-boyutlu bir dizi oluşturmak gerekir. (Bu muhtemelen açıklayıcı yetenekleri benim eksikliği için özür dilerim, çok kafa karıştırıcı geliyor. Bir örnek aşağıda var, daha net şeyler yapmak gerekir ki)

İşte benim örnek yeni dizisi "sıralama" fonksiyonu, veya bu aramak ne olursa olsun, uygulandıktan sonra neye benzeyeceğini bulunuyor:

$arr = array(
 0 => array(),
 1 => array(),
 2 => array(
     8 => array(
        14 => array(
            16 => array(),
            17 => array(),
            18 => array()
),
        15 => array()
),
     9 => array(),
    10 => array(),
    11 => array()
),
 3 => array(
    12 => array(),
    13 => array()
)
);

Ben tüm boş array () ler muhtemelen çok temiz ve zarif bir çözüm değil ama ne yazık ki bu ben olmak için gereken yolu olduğunu biliyorum!

0 Cevap