Intereting Posts
Получить идентификатор транзакции заказа от authorize.net Авторизовать AIM Почему «mysql_connect» обескуражен и каковы альтернативы? Отправляйте данные из localStorage через AJAX на PHP и сохраняйте их в файле HTML Исследуйте необработанные SQL-запросы в Laravel 4 CodeIgniter – загружать библиотеки, если они еще не загружены Разработка PHP с Eclipse на удаленном сервере (FTP) в Windows exec () продолжает выполнение команды Again and Again как бесконечный цикл, несмотря на отсутствие цикла в программе php crawl – включен javascript PHP и одновременный доступ к файлам Вставка значений массива вставляет один идентификатор в базу данных mysql с использованием php и PDO Окно декодирования 7 Файл Sticky Notes Изменение файла макета в представлении Yii2 SimpleXML: выбор элементов, имеющих определенное значение атрибута Mysqli на WAMP, попытка подключения к ошибке не выполнена php: экспортировать массив в xml-проблему

Проверка наличия всех элементов массива пустым PHP

Я добавляю массив элементов из формы, и если все они пустые, я хочу выполнить некоторую проверку и добавить строку ошибки. Так что я:

$array = array( 'RequestID' => '$_POST["RequestID"]', 'ClientName' => '$_POST["ClientName"]', 'Username' => '$_POST["Username"]', 'RequestAssignee' => '$_POST["RequestAssignee"]', 'Status' => '$_POST["Status"]', 'Priority' => '$_POST["Priority"]' ); 

И тогда, если все элементы массива пусты, выполните:

 $error_str .= '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>'; 

Solutions Collecting From Web of "Проверка наличия всех элементов массива пустым PHP"

Вы можете просто использовать встроенный array_filter

Если обратный вызов не предоставляется, все записи ввода, равные FALSE (см. Преобразование в логическое), будут удалены.

Так можно сделать это в одной простой строке.

 if(!array_filter($array)) { echo '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>'; } 

взорвать массив с пустым клеем и проверить размер результирующей строки:

 <?php if (strlen(implode($array)) == 0) echo 'all values of $array are empty'; ?> 

Более старый вопрос, но я подумал, что я поплю свое решение, поскольку оно не было перечислено выше.

 function isArrayEmpty($array) { foreach($array as $key => $val) { if (!empty($val)) return false; } return true; } 

вам это действительно не нужно.
Вы будете проверять эти поля отдельно, и, завершив этот процесс, вы можете определить, был ли массив пустым (или содержит недопустимые значения, что то же самое)

Вы можете делегировать проверку достаточно простой функции:

 // returns true if $arr has a // value for _any_ of the $keys function check_if_any( $arr, $keys ) { foreach( $keys as $key ) { if( $arr[$key] ) return true; } return false; } $has_any = check_if_any( $_POST, array( "Username", "RequestAssignee", ... ) ); 

Работа для меня тоже

 if(!array_sum($array)){ //Values are empty do something } 

Поздний поздний ответ, но, вероятно, самый быстрый и лучший способ сделать это:

 $array = array("demoKey1" => "", "demoKey2" => "2"); if(count(array_flip($array)) > 1){ // keys not empty // for example count is 2 } 

Ваше определение $ array неверно и имеет одинарные кавычки. Он должен гласить:

 $array = array( 'RequestID' => $_POST["RequestID"], 'ClientName' => $_POST["ClientName"], 'Username' => $_POST["Username"], 'RequestAssignee' => $_POST["RequestAssignee"], 'Status' => $_POST["Status"], 'Priority' => $_POST["Priority"] ); 

НЕ ИСПЫТАНО, НО ВЫ получите логику 🙂

 $error = 0; foreach ($array as $k => $v){ if (empty($v)) { $error++; } } if ($error == count($array)) { $error_str .= '<li>Please enter a value into at least one of the fields regarding the request you are searching for.</li>'; } 

это довольно просто:

 foreach($array as $K => $v) { if(empty($v)) { unset($array[$k]); } } $show_error = count($array) == 0; с foreach($array as $K => $v) { if(empty($v)) { unset($array[$k]); } } $show_error = count($array) == 0; 

вам также придется изменить инкапсуляцию для значений массива в двойные кавычки.