Bu aslında zaten çözdüm bir sorun, ama ben daha iyi bir çözüm olabilir şüpheli. Ben temelde (belirli bir sırayla) bir kategori ağacında tüm düğümlerin bir listesini gösterir iç içe bir dizi var:
Array(
[0] => Array(
[Category] => Array(
[id] => 49
[name] => Poster
)
[Child] => Array()
)
[1] => Array(
[Category] => Array(
[id] => 48
[name] => Sticker
)
[Child] => Array()
)
[2] => Array(
[Category] => Array(
[id] => 46
[name] => Hat
)
[Child] => Array()
)
[3] => Array(
[Category] => Array(
[id] => 45
[name] => Hoodie
)
[Child] => Array()
)
)
Sen $node['Child']
tüm durumlarda boş bir dizi olduğunu fark edeceksiniz. Zaten array_filter()
dışı tüm yaprak düğümleri filtrelemek için kullanılan ettik çünkü bu. Yine de, ne ben sonuçta istiyorum böyle yaprak düğümlerin bir tek-boyutlu bir dizi sahip olmaktır:
Array(
[49] => Poster
[48] => Sticker
[46] => Hat
[45] => Hoodie
)
So what would be the most elegant way of converting the first array to the second array?
İsteğe bağlı olarak, aynı zamanda yaprak düğümleri ve non-yaprak düğümlerin hem de bir dizi ile başlar ve her iki deneyin dizi budamak ve yeniden olabilir. Olmayan bir yaprak düğüm örneğidir gibi bir şey olurdu:
[7] => Array(
[Category] => Array(
[id] => 36
[name] => Merch
)
[Child] => Array(
[0] => Array(
[id] => 49
[name] => Poster
)
[1] => Array(
[id] => 48
[name] => Sticker
)
[2] => Array(
[id] => 40
[name] => Apparel
)
)
)
Son olarak, ben CakePHP'ye kullanıyorum, bu yüzden CakePHP'nin Set
sınıfının kullanımı da kabul edilebilir.