Массив не принимает значения, если его переменная равна 0 - PullRequest
1 голос
/ 07 мая 2020

Я пытался настроить массив, содержащий время в полчаса, например 7:00, 7:30 и так далее. Однако мой массив не принимает такие значения, как 7: 0 или 8: 0, а только 7:30 и 8:30. Я могу повторить все, но не могу вставить значение в массив

<?php
    $arr=[];
    $n=0;
for($i=7;$i<=16; $i++)
{


    for($x=0;$x <31;$x++)
    {
            if($x===0 || $x===30)
            {
                echo $i. ":".$x . "\n";
                $arr[$n]= $i. ":".$x;
            }


    }
    $n++;
}

?>

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Ваша проблема в том, что вы увеличиваете $n за пределами вашего for ($x... l oop, поэтому значение $i:30 перезаписывает значение $i:0. Но ваш код намного сложнее, чем должен быть, попробуйте вместо этого:

$arr=[];
for($i=7;$i<=16; $i++) {
    $arr[] = "$i:00";
    $arr[] = "$i:30";
}
print_r($arr);

Вывод:

Array
(
    [0] => 7:00
    [1] => 7:30
    [2] => 8:00
    [3] => 8:30
    [4] => 9:00
    [5] => 9:30
    [6] => 10:00
    [7] => 10:30
    [8] => 11:00
    [9] => 11:30
    [10] => 12:00
    [11] => 12:30
    [12] => 13:00
    [13] => 13:30
    [14] => 14:00
    [15] => 14:30
    [16] => 15:00
    [17] => 15:30
    [18] => 16:00
    [19] => 16:30
)

Демо на 3v4l.org

0 голосов
/ 07 мая 2020

Вы должны указать количество цифр с помощью str_pad

    $arr= array();;
    $n=0;
    for($i=7;$i<=16; $i++)
    {
    for($x=0;$x <31;$x++)
    {
            if($x===0 || $x===30)
            {
                $k = str_pad($x,2,"0",STR_PAD_LEFT);
                echo $i. ":".$k . "\n";
                $arr[$n]= $i. ":".$x;
            }
    }
    $n++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...