Şimdi 2 veri geliyor olarak düşünelim. $haberler ve $kategoriler

Database tasarımınızı görmedim ama muhtemelen yazılar için kategori_id adında bir tablo vardır.

Kategoriler ile birlikte yazıların olduğu alanı blok olarak adlandıracağım.

En üste yani blok kısmının dışına bir if else ekleyebilirsiniz diye düşünüyorum.

Bir bloğa bu şekilde yaklaşın. Eğer Gelen $haberler içerisindeki kategori_id si, $kategoriler değerindeki id değerine eşit ise, blok göstersin. Eşit yok ise blok gösterilmez. Bu if elsin en dışına da klasik foreach döngüsünü yerleştirebilirsiniz.

Böylece foreach döner. İçindeki if else bakar. Şart sağlanıyorsa gösterir yoksa göstermez o blok kısmını. Böylece bir kategoriye yazı eklendiği an gösterilebilir. Sıkıntısız ve stabil bir kod olacaktır diye düşünüyorum.

Elimde geldiğince yardımcı olmaya çalıştım database kısmını ve genel olarak tüm kod kısmını html alanı vs bilmediğim için böyle bir senaryo kurdum.

Yine de yapamazsanız elimden geldiğince yardımcı olurum.