Добавить ведущий 0 в цикле for

Тема в разделе "Как сделать...", создана пользователем Sunday, 23 май 2013.

  1. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    765
    Симпатии:
    326
    Как добавить вторую команду, чтобы если число меньше 10-ти, т.е. 0-9, то впереди добавлялся бы 0?
    Код:
    for ($i='-1'; $i++<'24';) echo '<option value="'.$n.$i.'">'.$n.$i.'</option>';
    можно конечно так сделать
    Код:
    if ($i<10) $n='0'; else $n='';
    Но может есть более изящное решение?

    Спасибо
     
  2. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    sprintf('%1$02d',$i);
     
    Sunday нравится это.
  3. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    Варианты:
    1. Тернарный оператор: ($i<10)?$n='0':$n='';
    2. sprintf("%02d", $i)
     
    Sunday нравится это.
  4. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    765
    Симпатии:
    326
    А силами самого for это сделать никак нельзя? Там же можно и другие команды добавлять. Только вот не соображу, как это сделать правильно.
     
  5. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    PHP:
    for ($i=1$i<24$i++) echo sprintf("<option value='%1$02d'>%1$02d</option>\n"$i);
    HTML:
    
    <option value='01'>01</option>
    <option value='02'>02</option>
    <option value='03'>03</option>
    <option value='04'>04</option>
    <option value='05'>05</option>
    <option value='06'>06</option>
    <option value='07'>07</option>
    <option value='08'>08</option>
    <option value='09'>09</option>
    <option value='10'>10</option>
    <option value='11'>11</option>
    <option value='12'>12</option>
    <option value='13'>13</option>
    <option value='14'>14</option>
    <option value='15'>15</option>
    <option value='16'>16</option>
    <option value='17'>17</option>
    <option value='18'>18</option>
    <option value='19'>19</option>
    <option value='20'>20</option>
    <option value='21'>21</option>
    <option value='22'>22</option>
    <option value='23'>23</option>
     
  6. APXOH

    APXOH Создатель

    Регистр.:
    16 янв 2013
    Сообщения:
    36
    Симпатии:
    6
    полезной в подобных задачах может быть и функция str_pad
    for ($i=1; $i<24; $i++) echo "<option value='".str_pad($i, 2, "0", STR_PAD_LEFT)."'>".str_pad($i, 2, "0", STR_PAD_LEFT)."</option>\n";

    вернет тот же результат
     
    Sunday нравится это.