Ben PHP nesneleri bir tek boyutlu bir dizi var. Her nesne bir özellik nesnenin benzersiz bir kimliktir ve diğer üst olan dizide başka bir nesnenin benzersiz bir kimliktir, iki niteliği vardır. Örneğin:
array(3) {
[0]=>
object(stdClass)#1 (2) {
["ID"]=>
int(1)
["parentID"]=>
int(0)
}
[1]=>
object(stdClass)#2 (2) {
["ID"]=>
int(3)
["parentID"]=>
int(2)
}
[2]=>
object(stdClass)#3 (2) {
["ID"]=>
int(2)
["parentID"]=>
int(1)
}
}
Ben çok boyutlu bir diziye bu tek-boyutlu bir dizi dönüştürmek gerekir. Ben bu birkaç saplamanız almış ama yuvalama her seviye için bir döngü kalmadan halletmek için bir yol bulamıyorum. Algoritması yuvalama için varsayımsal sonsuz seviyeleri adapte edebilmek gerekiyor. Bazı özyineleme teknikleri kullanarak denedim ama oldukça doğru kazanılmış hiç.
Karmaşıklık biraz eklemek için, ben alıyorum dizideki nesnelerin bir sensical sırayla her zaman değil. Yukarıda benim örnekte bu çoğaltmak için çalıştı; Eğer 3 kimliği ile nesne 2 kimliği ile nesneyi önce dizide geldiğini fark edeceksiniz. yüzden onların irade muhtemelen de dahil bir sıralama algoritması.
İdeal Yukarıdaki örnek bu gibi bir şey açacak:
Array
(
[0] => Array
(
[ID] => 1
[parentID] => 0
[0] => Array
(
[ID] => 2
[parentID] => 1
[0] => Array
(
[ID] => 3
[parentID] => 2
)
)
)
)