簡體   English   中英

將獲得的數組與數據庫PHP中的數據進行比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM