【问题标题】:Php, fill hours missing in array [closed]Php,填充数组中缺少的小时数[关闭]
【发布时间】:2022-01-16 12:48:30
【问题描述】:

我有一个由开始时间和结束时间组成的数组。喜欢:

8:00 --> 9:00
9:00 --> 10:00
12:00 --> 12:30

我需要的是填补失踪时间:

8:00 --> 9:00
9:00 --> 10:00
**10:00 --> 12:00**
12:00 --> 12:30

谢谢

【问题讨论】:

  • 欢迎。您需要先执行appropriate amount of research 并自己进行一些尝试。如果您遇到具体的问题,请发布您的尝试(使用正确格式的适当示例数据),说明您遇到的问题、预期结果以及当前发生的情况。我们在这里帮助您解决当前代码的具体问题,而不是为您编写所有代码(这里的正确答案需要我们这样做)。

标签: php arrays


【解决方案1】:

你需要遍历几个小时,并检查一个循环的las数是否与下一个循环的第一个数相同,如果不是,则添加间隔:

<?php

# I have an array composed by starting hour and finish hour. Like:
$time_array = [
    '8:00' => '9:00',
    '9:00' => '10:00',
    // 10:00 => 12:00
    '12:00' => '12:30'
];

$last_time = '';
$new_time = [];
foreach ($time_array as $start => $end) {
    if ($last_time && $last_time != $start) {
        $new_time[$last_time] = $start;
    }
    $last_time = $end;
    $new_time[$start] = $end;
}
print_r($new_time);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多