У меня есть массив вроде ниже, который генерируется путем разбора URL-адреса xml.
Массив
Array ( [Tags] => SimpleXMLElement Object ( [0] => ) )
Имя массива – $result
. Теперь я хочу проверить, что если массив, полученный как выше, я хочу напечатать сообщение об ошибке. Но как проверить этот массив в условии if?
вы можете использовать
empty($result)
чтобы проверить, пуст ли основной массив или нет.
Но поскольку у вас есть объект SimpleXMLElement, вам нужно запросить объект, если он пуст или нет. См. http://www.php.net/manual/en/simplexmlelement.count.php.
например:
if (empty($result) || !isset($result['Tags'])) { return false; } if ( !($result['Tags'] instanceof SimpleXMLElement)) { return false; } return ($result['Tags']->count());
Исправленный;
/* return true if the array is not empty return false if it is empty */ function is_array_empty($arr){ if(is_array($arr)){ foreach($arr as $key => $value){ if(!empty($value) || $value != NULL || $value != ""){ return true; break;//stop the process we have seen that at least 1 of the array has value so its not empty } } return false; } }
Я понимаю, чего вы хотите. Вы хотите проверить все данные массива, если все это пусто или по крайней мере 1 не пустое
Пустой массив
Массив ([Теги] => Объект SimpleXMLElement ([0] =>))
Не пустой массив
Массив ([Теги] => Объект SimpleXMLElement ([0] =>, [1] => "s"))
Надеюсь, я прав. Вы можете использовать эту функцию для проверки всех данных массива, если хотя бы одно из них имеет значение.
/* return true if the array is not empty return false if it is empty */ function is_array_empty($arr){ if(is_array($arr)){ foreach($arr $key => $value){ if(!empty($value) || $value != NULL || $value != ""){ return true; break;//stop the process we have seen that at least 1 of the array has value so its not empty } } return false; } } if(is_array_empty($result['Tags'])){ //array is not empty }else{ //array is empty }
Надеюсь, это поможет.
Правильный код двух ppl перед ^ _ ^
/* return true if values of array are empty */ function is_array_empty($arr){ if(is_array($arr)){ foreach($arr as $value){ if(!empty($value)){ return false; } } } return true; }
this check if array is empty if (!empty($result) { // do stuf if array is not empty }else{ // do stuf if array is empty } this check array is null or not if (is_null($result) { // do stuf if array is null }else{ // do stuf if array is not null }