我有一个Array,其输出为以下字符串:Date(Datetime)
,Duration(Time)
。同一天有多个不同的时间。
例如:
2019-03-04 00:00:00 |
01:00:00
2019-03-04 00:00:00 |
00:05:00
2019-03-05 00:00:00 |
00:30:00
2019-03-05 00:00:00 |
00:15:00
现在,我要查找同一天,并将每天的所有Time Values
添加到一个Time String
中。
我的代码看起来像这样(简化):
$sql_query = "SELECT date, time_in_minutes FROM user;
$result_sql = $db->query($sql_query);
while($sql_query = $result_sql->fetchrow(DB_FETCHMODE_ASSOC))
{
echo $row_employee_data['date'];
echo "<br/>";
echo $row_employee_data['time_in_minutes'];
echo "<br/>";
echo "<br/>";
}
/*
Output:
2019-03-05 00:00:00
00:15:00
*/
预期输出应该是一个多维数组,该数组将输出所有Dates
一次,另一个值与持续时间Time
相加。例如:
2019-03-04 00:00:00
01:05:00
2019-03-05 00:00:00
00:45:00
答案 0 :(得分:0)
我已将您提供的值作为静态数组。
因此,您需要对其进行转换以使用它。
我们可以简单地获取一个多维数组。
键将是日期,子数组应包含各自的时间。
要从字符串中获取日期和时间,我们将使用php substr()函数。
以下是代码:
<?php
$dates = [];
$dates[] = '2019-03-04 00:00:00 | 01:00:00';
$dates[] = '2019-03-04 00:00:00 | 00:05:00';
$dates[] = '2019-03-05 00:00:00 | 00:30:00';
$dates[] = '2019-03-05 00:00:00 | 00:15:00';
$output = [];
if (! empty($dates)) {
foreach ($dates as $date) {
$temp = explode(' | ', substr($date, 11));
$output[substr($date, 0, 10)][] = $temp;
}
}
if (! empty($output)) {
foreach ($output as $date => $time) {
echo "<br/>" . $date;
if (! empty($time)) {
foreach ($time as $timeVal) {
if (! empty($timeVal)) {
foreach ($timeVal as $final) {
echo "<br/>--" . $final;
}
}
}
}
echo "<hr/>";
}
}
?>
和输出:
2019-03-04
--00:00:00
--01:00:00
--00:00:00
--00:05:00
2019-03-05
--00:00:00
--00:30:00
--00:00:00
--00:15:00