[英]How can I display same date record through foreach loop from database in PHP
我想使用 foreach 循環從數據庫中顯示相同的日期記錄。
假設我在數據庫中有以下記錄。
Id Name created_date
1 XYZ 2020-12-08 13:24:20
2 YUZ 2020-12-04 11:40:04
3 TYZ 2020-12-03 11:54:58
4 SDD 2020-12-03 07:19:19
在上表中,同一日期“ 2020-12-03
”中有 2 條記錄,所以我想在表中顯示如下格式的相同日期記錄。
Tuesday
- 2020-12-08
Friday
- 2020-12-04
Thursday
- 2020-12-03
- 2020-12-03
我在 PHP 腳本下面使用過,但它不是我需要的顯示,它只顯示單獨的 2 行相同日期。
<table>
<?
if(isset($getUsers) && !empty($getUsers)){
foreach ($getUsers as $key => $value) {
$date =$value['created_date'];
$day ='';
Switch(date('w',strtotime($date))){
Case 0:
$day= 'Sunday';
break;
Case 1:
$day= 'Monday';
break;
Case 2:
$day= 'Tuesday';
break;
Case 3:
$day= 'Wednesday';
break;
Case 4:
$day= 'Thursday';
break;
Case 5:
$day= 'Friday';
break;
default:
$day= 'Saturday';
}
?>
<thead>
<tr >
<th scope="col" colspan="4"><?php echo $day; ?></th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" colspan="4"><?php echo date('Y-m-d', strtotime($value['created_date'])) .'-'. $value['name']; ?></th>
</tr>
</tbody>
<?php
}
}
?>
</table>
您應該使用以下相關數據 hashmap 您的日子:
$daysMap = [];
foreach ($getUsers as $key => $value) {
$date =$value['created_date'];
$day ='';
Switch(date('w',strtotime($date))){
Case 0:
$day= 'Sunday';
break;
Case 1:
$day= 'Monday';
break;
...
}
$daysMap[$day][] = date('Y-m-d', strtotime($value['created_date'])) .'-'. $value['name'];
}
稍后,循環$daysMap
並打印每一天及其日期。
我將使用單獨的循環並創建一個數組,使用日期作為鍵:
<table>
<?
if(isset($getUsers) && !empty($getUsers)){
// first create the array to ensure the order of days will be respected
$days = [
'Sunday' => [],
'Monday' => [],
'Tuesday' => [],
'Wednesday' => [],
'Thursday' => [],
'Friday' => [],
'Saturday' => []
];
// add the datas in the corresponding day in the array
foreach ($getUsers as $value) {
$date =$value['created_date'];
$dayOfWeek = date('w',strtotime($date));
$days[$dayOfWeek][] = $value;
}
// loop the array and display its content
foreach ($days as $day => $values) {
?>
<thead>
<tr >
<th scope="col" colspan="4"><?php echo $day; ?></th>
</tr>
</thead>
<tbody>
<?php
// Loop the sub array containing the values
foreach ($values as $value) {
?>
<tr>
<th scope="row" colspan="4"><?php echo date('Y-m-d', strtotime($value['created_date'])) .'-'. $value['name']; ?></th>
</tr>
<?php
}
?>
</tbody>
<?php
}
}
?>
</table>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.