0 / 0 / 1
Регистрация: 19.07.2015
Сообщений: 67
1

Как определить Empty или не Empty массив?

18.09.2015, 17:29. Показов 2128. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер!
Встрял в ситуацию... Заполняю массив в цикле значениями из базы данных вот так

PHP
1
2
3
while ($row = mysqli_fetch_array($res)){
$names["$row[0]"] = "names.php?id=$row[0]";
}
Соответственно у меня массив имеет вид [$row[0]] => [names.php?id=$row[0]] (ключ => значение).
Но в базе бывают пустые записи, а значит мой массив начинает выглядеть буквально вот так [] => [names.php?id=].
Я проверяю его через empty(), а он зараза не проверяется, и только через print_r я увидел что он не пустой. Эмм... Не совсем пустой.

А как проверить его на пустоту? Ключа получается как бы нет... Точнее он его не видно почему-то. Он и не буквенный и не численный. А мне обязательно надо прогнать его через if (empty($names)){...}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2015, 17:29
Ответы с готовыми решениями:

В чем разница между !empty и empty?
И парочку примеров для лучшего понимания, если не сложно

Как работает empty ? или где у меня ошибка
action.php //--------Авторизация пользователя---------------- if($_SERVER == 'POST'){...

Как правильно релизовать empty
Здравствуйте, я столкнулся с такой проблемой. Я хочу сделать, чтобы если поле(короткий текст -...

Проверить _bstr_t строку на пустое значение или empty
Здравствуйте уважаемые ГУРУ! Подскажите пожалуйста как можно проверить _bstr_t строку на пустое...

7
82 / 82 / 38
Регистрация: 15.03.2013
Сообщений: 280
18.09.2015, 17:43 2
Он и не буквенный и не численный
А какой
0
0 / 0 / 1
Регистрация: 19.07.2015
Сообщений: 67
18.09.2015, 18:17  [ТС] 3
А вот Хз. Я заведу параллельный массив с цифровыми ключами и буду проверять на empty его. А с этим не знаю что делать.
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
18.09.2015, 18:22 4
м.б. isset() ?
0
29 / 29 / 14
Регистрация: 23.10.2014
Сообщений: 79
18.09.2015, 18:28 5
как я понимаю, у вас в цикле при пустых значениях постоянно затирается $name[""]
PHP
1
2
3
$name[$s] = $s;
$name[$a] = $a;
var_dump($name);
по ходу нужно просто проверить на существование элемента с ключом "" - если он есть, то что-то где-то было пустым
0
16 / 16 / 10
Регистрация: 24.01.2014
Сообщений: 187
18.09.2015, 18:30 6
PHP
1
2
3
4
5
6
7
8
9
10
//Можно так делать:
while ($row = mysqli_fetch_array($res)) {
if (empty($row[0])) continue;
$names["$row[0]"] = "names.php?id=$row[0]";
}
 
//Можно так:
foreach ($names as $name => $value) {
if (empty($name)) echo 'Ключ пустой';
}
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
18.09.2015, 18:47 7
Цитата Сообщение от drmind Посмотреть сообщение
Соответственно у меня массив имеет вид [$row[0]] => [names.php?id=$row[0]] (ключ => значение).
Но в базе бывают пустые записи, а значит мой массив начинает выглядеть буквально вот так [] => [names.php?id=].
Я проверяю его через empty(), а он зараза не проверяется, и только через print_r я увидел что он не пустой. Эмм... Не совсем пустой.
А как проверить его на пустоту?
ничего не понятно.

Цитата Сообщение от drmind Посмотреть сообщение
Ключа получается как бы нет... Точнее он его не видно почему-то. Он и не буквенный и не численный. А мне обязательно надо прогнать его через if (empty($names)){...}
Ключ как бы есть, имеет тип строка. Хоть и пустая. Это все равно как число типа integer равное 0. 0 это тоже как бы ничего, но это число. Выполните
PHP
1
var_dump(""); //string(0) ""
может тогда поймете.

И что значит не проверяется через empty совсем не понятно.
PHP
1
2
3
4
5
6
7
8
<?php
$a = [];
 
var_dump(empty($a[""])); // true
 
$a = ["" => "names.php?id="];
 
var_dump(empty($a[""])); // false
0
0 / 0 / 1
Регистрация: 19.07.2015
Сообщений: 67
18.09.2015, 21:09  [ТС] 8
Всем спасибо! Куча вариантов - завтра буду проверять.
0
18.09.2015, 21:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2015, 21:09
Помогаю со студенческими работами здесь

Как отклавливать экзепшн Prelude.head: empty list?
Привет народ, как вы обрабатываете такое исключение? Точнее будет сказать, эту ошибку т.к как я...

Как поместить имена пустых файлов в файл empty?
Привет! Есть директория Dir1 в которой есть файлы 1.txt 2.txt 3.txt 4.txt. Первые 2 файла пустые, а...

empty() Неувязка
&lt;?php $array = file('C:\txt.txt'); // Если $array пустая, то выводим &quot;ОК&quot; if (empty($array)) { ...

Empty и переменная
странное поведение заметил empty - определяет, установлена ли переменная. последнее время...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru