на этот раз проблема с циклом
У меня есть логи пользователя.
Пользователь за день делает какие-то действия, или не делает их совсем.
Если делает то
записываем в массив
$arr[$day]["deystv1"]=
$arr[$day]["deystv22"]=
В конце получаем месячный массив:
$arr[1] = array("deystv1" =>2312, "deystv2" =>sdsds );
$arr[3] = array("deystv1" =>23ssadas2, "deystv2" =>sds );
$arr[4] = array("deystv1" =>23xxc12, "deystv2" =>saadsds );
$arr[7] = array("deystv1" =>231czza2, "deystv2" =>scc3sds );
потом перебираю его:
while($ind <= $day)
{
echo $arr[$day]["deystv1"];
$ind++;
}
и случается так, что в 5ый день пользователь не сделал никаких действий, но день то я вывожу, соответственно вылазиет "Undefined offset:".
Решил проверить на существование вставил в цикл if(isset($arr[$day]["deystv1"]))
Проверка не работает.
И сейчас я в тупике.
По мне есть 2 варианта развития:
1. найти как сделать нормальную проверку на наличие.
2. Перебрать цикл нормально, пропуская пустые дни.
Но ни на один из двух вопросов ответа не знаю. =(
Спустя 7 минут, 53 секунды (6.03.2012 - 13:06) Visman написал(а):
if(isset($arr[$day]["deystv1"]))
-->
if(!empty($arr[$day]['deystv1']))
Спустя 26 минут, 38 секунд (6.03.2012 - 13:32) NitroGenerate написал(а):
А если $arr[$day]["deystv1"]==0 ? (запись есть, и равна она 0, то сработает empty) не вариант.
Но проблему я решил:
при создании массива дописал:
И дальше:
Но проблему я решил:
при создании массива дописал:
$arr[1] = array("deystv1" =>2312, "deystv2" =>sdsds, "check" =>1);
И дальше:
if(@empty($arr[$day]['check']==1){
...
}
Спустя 3 минуты, 16 секунд (6.03.2012 - 13:36) Visman написал(а):
if(@empty($arr[$day]['check']==1){
-->
if(!empty($arr[$day]['check'])){
Спустя 12 минут, 1 секунда (6.03.2012 - 13:48) killer8080 написал(а):
Цитата (NitroGenerate @ 6.03.2012 - 11:58) |
По мне есть 2 варианта развития: |
нет, только один - перебирать массив циклом foreach
Спустя 2 минуты, 31 секунда (6.03.2012 - 13:50) Visman написал(а):
killer8080, второй вариант не потребовался