- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вот возникла проблема, не могу справится самостоятельно.
Идет переборка (на php)
Примерно такого вида
Есть масив символо $podbor , размер 40
for($x1=0;$x1<count($podbor)&&$b==false;$x1++)
for($x2=0;$x2<count($podbor)&&$b==false;$x2++)
for($x3=0;$x3<count($podbor)&&$b==false;$x3++)
for($x4=0;$x4<count($podbor)&&$b==false;$x4++)
.............
код который должен отрабатывать.
Вообщем здесь проблем не возникает, все работает, но когда добавляю еще один цикл (пятый), т.е. пятый порядок делаю, то прога выбивает.
Идет сообщение, что работа длится более 30 сек.
Это чисто сервер выбивает или php не дает работать с таким большим колличеством операций?
Спасибо.
Вообщем здесь проблем не возникает, все работает, но когда добавляю еще один цикл (пятый), т.е. пятый порядок делаю, то прога выбивает.
Идет сообщение, что работа длится более 30 сек.
Цикл бесконечный получился. Покажи целиком как сделал 5-й цикл.
И еще вопрос, зачем? :)
Цикл бесконечный получился. Покажи целиком как сделал 5-й цикл.
И еще вопрос, зачем? :)
это для биржи ставок. там котировки разные надо подбирать, нужно до 6 порядка. а у меня на пятом уже глючит.
Цикл не бесконечный
for($x1=0;$x1<count($podbor)&&$b==false;$x1++)
for($x2=0;$x2<count($podbor)&&$b==false;$x2++)
for($x3=0;$x3<count($podbor)&&$b==false;$x3++)
for($x4=0;$x4<count($podbor)&&$b==false;$x4++)
На определенном этапе находится котировка и срабатывает $b=false.
Пятый точно также ниже добавил
стало
for($x1=0;$x1<count($podbor)&&$b==false;$x1++)
for($x2=0;$x2<count($podbor)&&$b==false;$x2++)
for($x3=0;$x3<count($podbor)&&$b==false;$x3++)
for($x4=0;$x4<count($podbor)&&$b==false;$x4++)
for($x5=0;$x5<count($podbor)&&$b==false;$x5++)
У вас при 4 вложенных циклах делается 2,560,000 проходов массива. При добавлении пятого становится 102,400,000 проходов. Неужели вы думаете это все быстренько обработается? Озвучьте задачу, должен быть другой подход.
Это чисто сервер выбивает или php не дает работать с таким большим количеством операций?
Вообще время исполнения программы в php.ini можно настроить параметрами max_execution_time и max_input_time.
На мой взгляд целесообразнее было бы в сам скрипт внести:
У вас при 4 вложенных циклах делается 2,560,000 проходов массива. При добавлении пятого становится 102,400,000 проходов. Неужели вы думаете это все быстренько обработается? Озвучьте задачу, должен быть другой подход.
Я это тоже считал.
Но я просто не думал что ограничения существуют.
мне сейчас тут вроде бы скинули работающий код, сейчас проверю :)
Согласен с Kolyaj, надо менять алгоритм, а не увеличивать время на выполнение скрипта. Тем более не на всех хостингах это можно сделать.
Я это тоже считал.
Но я просто не думал что ограничения существуют.
Все равно это не выход. При шести вложенных циклах у вас будет уже 4,096,000,000 проходов цикла, и еще неизвестно, что вы делаете при каждом проходе последнего цикла. А если вам придется увеличить число элементов в массиве до 50? Вобщем, низя так делать.