проверьте, имеет ли массив одно или несколько пустых значений

У меня есть массив $ var, и я бы хотел возвратить FALSE, если один или несколько элементов в массиве пустые (я имею в виду, что строка "").

Я думаю, что array_filter() – лучший способ, но я не знаю, как его фильтровать таким образом.

Как мне это сделать?

Solutions Collecting From Web of "проверьте, имеет ли массив одно или несколько пустых значений"

функция emptyElementExists ()

 function emptyElementExists($arr) { return array_search("", $arr) !== false; } 

Пример:

 $var = array( "text1", "", "text3" ); var_dump( emptyElementExists($var) ); 

Вывод:

BOOL (истина)

Справка

  • array_search ()
 if (array_search('', $var)!==false) return FALSE; 

Если вы хотите иметь функцию, которая проверяет, является ли элемент в массиве ложным, вы можете написать свою собственную функцию, которая:

  • Итерации через массив
  • Для каждого цикла проверьте, соответствует ли текущее значение элемента ""
  • Если значение не указано в следующем цикле
  • Если значение «" прерывает цикл по возврату False

Array_filter принимает массив и функцию, затем выполняет итерацию через массив и отправляет в каждый элемент указанной функции. Если функция возвращает true, элемент хранится в массиве, и если функция возвращает false, элемент извлекается из массива.

Вы видите разницу, верно?

Или явно, как было предложено @Ancide:

 $var = array("lorem", "ipsum", "dolor"); $emptyVar = array("lorem", "", "dolor"); function has_empty($array) { foreach ($array as $value) { if ($value == "") return true; } return false; } echo '$var has ' . (has_empty($var) ? 'empty values' : 'no empty values'); echo '<br>'; echo '$emptyVar has ' . (has_empty($emptyVar) ? 'empty values' : 'no empty values'); 

РЕДАКТИРОВАТЬ:

Сначала я не был уверен, если array_search() останавливается при первом вхождении. После проверки источника PHP кажется, что array_search() должен быть быстрее (и короче). Таким образом, вариант @ Wh1T3h4Ck5 был бы предпочтительнее, я полагаю.

Если вы действительно хотите проверить, существует ли одна или несколько пустых строк, это просто. Ты можешь сделать,

 in_array('', $var, true); 

Он возвращает true, если пустая строка ( '' ) существует по крайней мере в одном из значений массива, иначе false. Вы также можете сослаться на этот аналогичный вопрос, как проверить, имеет ли массив значение === null без цикла?