我正在制作一个程序来增加商店的数量,这些商店有自己的营业时间和营业时间(不同日期可能会有所不同)
我存储开始和结束时间的数据库结构为
所以当我从这个表中获取数据时,我希望对具有相同值的列名进行分组..
对于第一个商店输出应该是
monday, tuesday, wednesday, thrusday, friday, saturday, sunday => 10:00-am to 8:00-pm
最后的商店输出应为
monday, tuesday, wednesday, friday, saturday => 10:00-am to 8:00-pm
thrusday => 9:30-am to 5:00-pm
sunday => 10:00-am to 4:30-pm
所以我如何编写查询来获取这样的记录..
谢谢,
答案 0 :(得分:0)
这可能会对你有帮助。
$array
=来自数据库并从现在开始处理其输入。
$standardTime
=保存商店默认开始和结束时间的数组。
我不确定如何通过SQL或查询直接实现这一点,但是,我在这里尝试使用PHP脚本。希望这会对你有所帮助。
$array = array(
'monday' => "10:30-am to 08:00-pm",
'tuesday' => "10:30-am to 08:00-pm",
'wedensday' => "10:30-am to 08:00-pm",
'thursday' => "09:30-am to 05:00-pm",
'friday' => "10:30-am to 08:00-pm",
'saturday' => "10:30-am to 08:00-pm",
'sunday' => "10:00-am to 04:30-pm",
);
$standardTime = array("10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm","10:30-am to 08:00-pm");
$diff = array_diff($array,$standardTime);
$daysWithDiffTimmings = '';
if(is_array($diff) && count($diff) > 0) {
$daysThatHaveDiffTime = array_keys($diff);
foreach($daysThatHaveDiffTime as $day) {
$daysWithDiffTimmings.= $day.' = '.$diff[$day]."<br/>";
unset($array[$day]);
}
}
$remainingDaysWithSameTime = array_keys($array);
$daysWithSameTime = implode(",", $remainingDaysWithSameTime);
$daysWithSameTime .= ' = 10:30-am to 08:00-pm<br/>';
echo $daysWithSameTime;
echo $daysWithDiffTimmings;
这将输出为:
monday,tuesday,wedensday,friday,saturday = 10:30-am to 08:00-pm
thursday = 09:30-am to 05:00-pm
sunday = 10:00-am to 04:30-pm
答案 1 :(得分:0)
试试这个:
$question = array(
'monday' => '10:00-am to 8:00-pm',
'tuesday' => '10:00-am to 8:00-pm',
'wednesday' => '10:00-am to 8:00-pm',
'thrusday' => '9:30-am to 5:00-pm',
'friday' => '10:00-am to 8:00-pm',
'saturday' => '10:00-am to 8:00-pm',
'sunday' => '10:00-am to 4:30-pm',
);
$result = array();
foreach ($question as $key => $value) {
if(isset($result[$value]))
$result[$value] .= ', '.$key;
else
$result[$value] = $key;
}
echo "<pre>".print_r(array_flip($result),1)."</pre>";
输出:
Array
(
[monday, tuesday, wednesday, friday, saturday] => 10:00-am to 8:00-pm
[thrusday] => 9:30-am to 5:00-pm
[sunday] => 10:00-am to 4:30-pm
)