Оба варианта, выдают как-будто массив не пуст, но там точно не должно быть записей Код (Text): $images = explode(",", $product['image_other']); if(count($images) > 0) { echo "ОК"; } Код (Text): $images = explode(",", $product['image_other']); if(!empty($images)) { echo "ОК"; }
Пустой - это Код (Text): array (); Чего делать? Я думаю что сначала надо проверять $product['image_other'] на пустоту, а потом уже "клеить" массив...
Ниче не костыль, explode всегда будет возвращать массив как минимум с одним элементом, если первый аргумент - не пустой. И даже в этом случае
Поправил, не то воткнул)) Код (PHP): $array=array(); #пусто $array=array(null); #пусто $array=array(1 => ''); #пусто $array=array('str' => ''); #пусто $array=array(1 => 0); #пусто $array=array('str' => 0); #пусто $array=array(1 => '0'); #пусто $array=array('str' => '0'); #пусто $array=array(1 => '1'); #не пусто $array=array('str' => 'str'); #не пусто if(!array_filter($array)) { echo'Пусто'; }else{echo'Не пусто';}
Если в массиве есть 0 - то он никак не пустой. Вот так тру Код (Text): function real_empty($array) { return implode('', $array) == ''; }
Он и не будет пуст, если использовать типо Код (PHP): $array=array(0 => '0',1); #не пусто $array=array(0 => '0'); #пусто Что ради одного 0-нуля, массив целый создавать? Бред! Код (PHP): $array=array(0); if($array) { echo $array; }else{ echo'Пусто'; } ))
так у тебя будет true, если $array = array(''); А ТС надо чтобы для такого массива как раз было false Твой подход ничем не отличается от empty($array)
Спасибо! Сделал именно так. Все заработало Код (Text): if(!empty($product['image_other'])) { $images = explode(",", $product['image_other']); } if(isset($images)) { echo "ОК"; } А вот этот вариант не прокатил (