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 :: Помогите чайнику поиск в array
Дальше мы идем, если нет нужного ключа или значение не равно. Если условие не выполниться, т.е. ключ существует и значение равно нужному, то идем дальше
Собственно эта строка по сути и break, и return... Все в одном флаконе
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
armancho7777777
Отправлено: 02 Января, 2012 - 16:03:30
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Саныч пишет:
Посмотрите на вот эту строку:
Конечноже я посмотрел эту строку))
Суть в том, что условия работают на протяжении всего цикла. То есть условие проверяет совпадения на протяжении всего цикла, число интераций которого равен количеству вложенных массивов, в отличии от break, который выводит из цикла сразу же при совпадении. А значит и скорость рабаты кода разная.
Саныч
Отправлено: 02 Января, 2012 - 16:18:53
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
armancho7777777, это да, но как только дело дойдет до return $arr; все и закончиться. Цикл прерывается и возвращается результат.
Скорость безусловно будет разная, но только в вашем случае меньшая, т.к. каждый проход цикла будет выполняться одно ненужное присваивание
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Самогонщик
Отправлено: 02 Января, 2012 - 16:22:34
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
armancho7777777 пишет:
Суть в том, что условия работают на протяжении всего цикла. То есть условие проверяет совпадения на протяжении всего цикла, число интераций которого равен количеству вложенных массивов, в отличии от break, который выводит из цикла сразу же при совпадении. А значит и скорость рабаты кода разная.
Всё правильно у Саныча написано, цикл остановится при первом же совпадении. У него нет временной переменной в отличие от вашего кода.
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Почитайте разницу между "break" и "continue" ))) (Добавление)
Самогонщик пишет:
Всё правильно у Саныча написано, цикл остановится при первом же совпадении
Да не остановит он, а перейдет к следующей интерации дальше сравнивать. (Добавление)
Конструкция continue так же, как и break, работает только "в паре" с циклическими конструкциями. Она немедленно завершает текущую итерацию цикла и переходит к новой http://php.su/learnphp/cs/?cycles
Самогонщик
Отправлено: 02 Января, 2012 - 18:44:44
Посетитель
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
Как говорила Алиса: "чем дальше тем страньше и страньше".
Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011
Помог: 8 раз(а)
если значение по ид в массиве не существует или значение по ид не равно нужному числу (ид), то вернуть этот массив. Ты уверен, что он "Вернёт то что надо."?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.