PHP:从当前键的数组A中提取元素并推送到数组B.

时间:2018-05-20 05:04:26

标签: php arrays

我正在构建我的第一个网络应用。我正在使用openweathermap API。现在我正在尝试创建一个5天的预测。我希望从我的阵列中获取当天的日期,然后在接下来的4天内将其推送到新阵列。我被困'推动'今天'到我的新阵列5次。我也试过推下一个($ day_name)。这是代码。

                $day_name = array(
                1=>'Monday',
                2=>'Tuesday',
                3=>'Wednesday',
                4=>'Thursday',
                5=>'Friday',
                6=>'Saturday',
                7=>'Sunday');
                $day_start = date('N');
                foreach ( $day_name as $dk => $dv )
                {
                  if( $dk == $day_start and current($day_name))
                  {
                    $five_days = array();
                    while(count($five_days) !== 5)
                    {
                          array_push($five_days, $dv);
                    }
                    break;
                  }

                }
                echo '<pre>';
                print_r($five_days);
                echo '</pre>';

打印:

Array(
[0] => Sunday
[1] => Sunday
[2] => Sunday
[3] => Sunday
[4] => Sunday
)

使用原始脚本欢迎任何答案,因为我将来可能需要使用类似的东西。

1 个答案:

答案 0 :(得分:2)

如果您想今天和接下来的四天,一个选项是使用DatePeriod

$five_days   = [];
$period = new DatePeriod (
    new DateTime(), 
    new DateInterval('P1D'), 
    4
);

foreach ($period as $day)
{
    $five_days[] = $day->format('l');
}

echo '<pre>';
print_r($five_days);
echo '</pre>';

这将导致:

Array
(
    [0] => Sunday
    [1] => Monday
    [2] => Tuesday
    [3] => Wednesday
    [4] => Thursday
)