Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: обход дерева ассоциативных массивов [2]
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013 Откуда: Ukraine
Помог: 0 раз(а)
подскажите, объявляю я массив $a = array(); он по идее пустой, но не могу проверить его на пустоту, пишу например:
$a = array();
if (! empty($a))
{
'Ne pustoi';
}
if (empty($a))
{
echo 'Pustoi';
}
Получается что он не пустой, пробовал считать элементы путем count, не помогает, isset тоже не срабатывает, т.к. массив объявлен, пробовал перебирать через foreach и проверять ключ, но так же безрезультатно. Как правильно проверить массив? В чем ошибка?
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
roadster
Отправлено: 07 Июля, 2013 - 23:52:28
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013 Откуда: Ukraine
Помог: 0 раз(а)
Помогите найти ошибку, вроде бы и функция работает как нужно, но не пойму почему при проверке функция не завершается а цикл проходит до последнего элемента массива. Массив чуть изменен. (в функции первый элемент массива не проверял на соответствие искомому, так как делаю пока для пробы, что бы убедиться что работает).
Далее, $source_array в указанном вами куске кода не объявлен, но это, как я понял, $array1
Далее, в указанном вами куске кода вы обращаетесь к ключу $value['userID'], а в массиве, над котором вы работаете такого ключа нет. Есть 'loginId'.
Далее, в указанном вами куске кода вы обращаетесь к ключу $value['childNodes'], а в массиве, над котором вы работаете такого ключа нет. Есть 'childNode'.
Если внести эти правки в скрипт, он выведет два значения: 190 и 305.
Будьте внимательнее и поставьте себе какую-нибудь IDE, тот же NetBeans.
Не сочтите за рекламу, тем более, что он бесплатен, но так вам будет проще видеть ошибки в своем коде. p.s. и зачем вам переменная $key, если вы все равно ее не используете?
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
EuGen, тс утверждает, что ни один из нормальных способов проверки массива на пустоту не работает. И это как самопальный, но не совсем удачный пример незамысловатой проверки.
Автор, опишите задачу полностью, ибо ответ дать на сие описание проблемы — глупо. Сами себя запутали же. Откуда данные, почему именно так нужно изменить некоторые ключи, зачем записывать айдишники и прочее.
roadster
Отправлено: 08 Июля, 2013 - 08:50:48
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013 Откуда: Ukraine
Помог: 0 раз(а)
Спасибо за помощь, разобрался. Писал ночью, по этому видимо мозг уже не работал, сегодня трезвым взглядом все прояснил. Поставил NetBeans, довольно удобно, особенно если учесть что и бесплатно. А задача такая, нужно что бы функция проходила по деревey до указанного в параметре $ID.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
roadster
Отправлено: 08 Июля, 2013 - 10:24:14
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013 Откуда: Ukraine
Помог: 0 раз(а)
Ругается на конструкцию [$sKey]. Пробовал и $sKey и $sKey[], все равно ругается или ошибка синтаксиса ну это и так ясно, или что переменная - не массив. Вроде должно работать. Попробую проверить каждую переменную.
DelphinPRO
Отправлено: 08 Июля, 2013 - 10:32:44
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
roadster пишет:
Ругается на конструкцию [$sKey]. Пробовал и $sKey и $sKey[]
это массив в php5.4
в нижних версиях: array($sKey)
----- Чем больше узнаю, тем больше я не знаю.
roadster
Отправлено: 08 Июля, 2013 - 10:47:08
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013 Откуда: Ukraine
Помог: 0 раз(а)
Спасибо, у меня 5.3 стоит. Надо читать изменения а то я впервые встречаю данную конструкцию. Всем большое спасибо кто откликнулся, буду тут почаще сидеть, может и я кому помогу )
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.