Как я могу запустить цикл for с 01 вместо 1?

#php

#php

Вопрос:

Как мне запустить цикл for с 01 вместо 1 ? Я пробовал следующее, но, похоже, это не работает.

 for ($i = 01; $i <= 12; $i  ) {
    echo "<option value='$i'";
    if ($i == $post_response[expiremm]) { 
        echo " selected='selected'"; 
    }
    $month_text = date("F", mktime(0, 0, 0, $i 1, 0, 0, 0));
    echo ">$month_text</option>"; 
} 
  

Ответ №1:

На самом деле вы не можете начинать целое число с 01, вам нужно будет дополнить значение, возможно, используя str_pad для префикса начальных элементов к строке:

 $value = $i;
if ($i < 10) {
    $value = str_pad($i, 2, "0", STR_PAD_LEFT);
}
  

Обратите внимание, что для разных типов блоков вам, очевидно, потребуется изменить желаемое pad_length .

Ответ №2:

01 это восьмеричное число 1 (которое в данном случае эквивалентно десятичному 1 ). Поскольку вы хотите отформатировать выходные данные так, чтобы число состояло из двух цифр, рассмотрите возможность использования printf :

 printf("<option value='d'", $i);
  
  • % отмечает начало преобразования
  • 0 означает «дополнить строку нулем»
  • 2 означает «замена должна иметь минимальную длину 2»
  • d означает «аргумент является целым числом»

Ссылки:

Ответ №3:

 for ($i = 1; $i <= 25; $i  ) {
echo str_pad($i, 2, "0", STR_PAD_LEFT);
echo "<br/>"; }
  

это может вам помочь..

Ответ №4:

PHP проанализирует 01 как целое число, поэтому оно станет 1. Вы не можете выполнить итерацию по строке, подобной ’01’, поэтому вам придется отредактировать значение $ i позже в вашем коде.

Если вам понадобится 01 позже, вы могли бы использовать дополнение. http://php.net/manual/en/function.str-pad.php

Ответ №5:

for ($ i = 01; $ i <= 12; $ i ) {

             $value = strlen($i);
            if($value==1){
                $k = "0".$i;
            }else
            {
                $k=$i;
            }
            echo "<option value='$k'";
            if ($i == $post_response[expiremm]) {
                echo " selected='selected'";
            }
            $month_text = date("F", mktime(0, 0, 0, $i   1, 0, 0, 0));
            echo ">$month_text</option>";
        }
  

Цикл For не может начинаться с 01, поэтому вы можете сделать так, как показано выше

Ответ №6:

 $value = strlen($i);
        if($value==1){
            $k = "0".$i;
        }else
        {
            $k=$i;
        }
        echo "<option value='$k'";
        if ($i == $post_response[expiremm]) {
            echo " selected='selected'";
        }
        $month_text = date("F", mktime(0, 0, 0, $i   1, 0, 0, 0));
        echo ">$month_text</option>";
    }
  

Ответ №7:

Не уверен, поможет ли это, если вы хотите начать отсчет не с 00 warp ($ value 1), а затем, когда он дойдет до 10, он не добавит 0 раньше

 $count = 0;
$value = $count  ;

echo str_pad(($value  1), 2, "0", STR_PAD_LEFT);