[英]Comparing array obtained to data from database PHP
我是一名初級程序員,仍在學習如何編寫代碼。 我的PHP中有這個數組
//data inside the array are days name
$days = array();
for($date = $from_date; $date <= $to_date; $date->modify('+1 day')) {
array_push($days,strtolower($date->format('l')));
}
從這個數組中,將有用戶選擇的天數列表(星期一,星期二等)
然后我在我的數據庫中有這個表
work_scheme
work_scheme由表組成
//field_name => data
Monday => Working Day
Tuesday => Working Day
Wednesday => Working Day
Thursday => Working Day
Friday => Working Day
Saturday => Half Day
Sunday => Off Day
這是我的working_days數組,從數據庫中檢索數據
$working_days = array();
if(count($work_scheme) > 0){
foreach($work_scheme as $r){
$working_days[0] = array(
"monday" => $r['monday']
);
$working_days[1] = array(
"tuesday" => $r['tuesday']
);
$working_days[2] = array(
"wednesday" => $r['wednesday']
);
$working_days[3] = array(
"thursday" => $r['thursday']
);
$working_days[4] = array(
"friday" => $r['friday']
);
$working_days[5] = array(
"saturday" => $r['saturday']
);
$working_days[6] = array(
"sunday" => $r['sunday']
);
}
}
那么現在如何將從用戶活動中獲得的數組與數據庫中的表進行比較?
我有以下代碼,但它無法正常工作
for($i = 0; $i < count($days); $i++){
for($x = 0; $x < count($working_days); $x++){
$total_days = 0;
if($days[$i] == $working_days[$x]){
echo "hello world";
}
}
}
我注意到$ working_days [$ x]不會返回我的日期名稱,相反它會返回我工作日,半天或休息日如何比較$ days()到$ working_days日的日期名稱?
因此,如果讓我們說選擇的日期是星期五,星期六和星期日,我怎樣才能編寫將返回給我1.5天的代碼?
Working day = 1
Half day = 0.5
Off day = 0
嘗試這樣的事情:
首先,以更有用的方式初始化您的工作日數組
$scheme_days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
$working_days = [];
if (count($work_scheme) > 0)
{
foreach ($work_scheme as $r)
{
foreach ($scheme_days as $scheme_day)
{
$working_days[$scheme_day] = $r[$scheme_day];
}
}
}
然后,計算你的日子:
$total_days = 0;
for ($i = 0; $i < count($days); $i++)
{
$worked_day = strtolower($working_days[strtolower($days[$i])]);
if ($worked_day == "working day")
{
$total_days++;
}
else if ($worked_day == "half day")
{
$total_days += 0.5;
}
}
echo $total_days;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.