v2.5.2
Giriş yap

Php iç içe dizileri alt alta hale getirmek

singlestroke
269 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Aşağıda ki kod ile bir json çıktı oluşturuyorum
bu çıktıyı içe içe diziler halinde değil alt alta diziler halinde çıkartmak istiyorum nasıl yaparım?

$categories = [
    [
        'id' => 1,
        'parent' => 0,
        'name' => 'Kapılar'
    ],
    [
        'id' => 2,
        'parent' => 0,
        'name' => 'Vestiyerler'
    ],
    [
        'id' => 3,
        'parent' => 0,
        'name' => 'Dresuarlar'
    ],
    [
        'id' => 4,
        'parent' => 1,
        'name' => 'Lake Kapılar'
    ],
    [
        'id' => 5,
        'parent' => 1,
        'name' => 'Amerikan Panel Kapılar'
    ],
    [
        'id' => 6,
        'parent' => 5,
        'name' => 'Camlı Amerikan Panel Kapılar'
    ],
];



function categoryList($categories, $top = 0)
{

    if(count($categories) > 0){
        foreach ($categories as $category){
            
            if($category['parent'] == $top):
                $all[] = $category;
                if(!is_null(categoryList($categories, $category['id']))){
                    $all[] = categoryList($categories, $category['id']);
                }
            endif;
        }
    }

    return $all;

}



[
  {
    "id": 1,
    "parent": 0,
    "name": "Kap\u0131lar"
  },
  [
    {
      "id": 4,
      "parent": 1,
      "name": "Lake Kap\u0131lar"
    },
    {
      "id": 5,
      "parent": 1,
      "name": "Amerikan Panel Kap\u0131lar"
    },
    [
      {
        "id": 6,
        "parent": 5,
        "name": "Caml\u0131 Amerikan Panel Kap\u0131lar"
      }
    ]
  ],
  {
    "id": 2,
    "parent": 0,
    "name": "Vestiyerler"
  },
  {
    "id": 3,
    "parent": 0,
    "name": "Dresuarlar"
  }
]
    
Cevap yaz
Cevaplar (1)
m100
632 gün önce

php'de recursive functions denilen bir yapı var mantığı bir kontrol ile gerekli şartları sağlarsa (mesela parent'ı var mı gibi) fonksiyonu tekrar çağarıyorsun.
yapman gereken de böyle bir fonksiyon yazıp her elemanı ayrı bir diziye aktarmak bunu dizinin içindeki elamanları almak için foreach de kullanabilirsin for da foreach daha çok işine yarar içindeki elemanları kolayca çekersin.