- Ваши аргументы
array_push
неверны. Прочтите руководство по использованию функций, которые вы используете Включите предупреждения на вашем сервере; запуск это в кодовой панели сразу же показало мне проблему. [ Редактировать: Теперь вы спокойно исправили это в своем вопросе.]
- У вас также есть опечатка:
$i
вместо $week
.
- Наконец, вы проверяете по «02/2002», но для этого месяца строка будет «2/2002».
Фиксированный код ( демоверсия ):
<?php
// initial value
$week = 50;
$year = 2001;
$store = array();
do
{
$week++;
$result = "$week/$year";
array_push($store, $result);
if($week == 53){
$week = 0;
$year++;//increment year by 1
}
continue;
}
// End of Loop
while ($result !== "2/2002");
?>
В общем, я бы рекомендовал против таких петель. Как вы обнаружили, ваш код очень хрупок, потому что вы тестируете только одно очень конкретное значение, и если это значение не совсем точное, вы получаете бесконечный цикл.
Вместо этого рассмотрите возможность сравнения $week
и $year
отдельно и численно:
while ($week < 2 && $year <= 2002)
В следующий раз, пожалуйста, включите в свой вопрос вывод, который вы видите , а также вывод, который вы хотите увидеть. Это сэкономит нам время при воспроизведении вашей проблемы.