is_array sorun oluşturur, error log oluşturabilir çünkü boş array de sonuç olarak bir array dir.
var_dump(is_array(array()));
olarak denersiniz true döndüğünü görürsünüz.
eğer multidimensional bir array değilse
if($data && !empty($data)){
foreach($data as $d){
//.....
}
}eğer multidimensional bir array ise ilk dimensionın da isset ile kontrol edilmesi gerekir.
örneğin:
if(isset($data['veri']) && !empty($data['veri'])){
foreach($data['veri'] as $d){
//.....
}
}elbetteki başka yöntemler vardır. ben böyle kullanıyorum bir sorun yaşamadım.