簡體   English   中英

PHP中的foreach和循環語句問題

[英]Issue with foreach and loop statement in php

我有許多$competitors (是從MySQL檢索到的對象的數組)(例如9),為此我有$competitors[i]->minSingleCarefee數據,即費用數據。 我想對該費用數據進行平均,但可能是數據集不完整,即我沒有所有9個競爭對手的費用數據。 因此,我通過使用if語句並在費用數據可用的情況下增加$data_available此情況。

我的問題是代碼似乎有缺陷,因為它只返回第一個競爭對手的費用值……而我不知道為什么! 當我回顯它時,$ data_available也總是以0結尾。

//declaring variables
$mm_avg_fees = 0;
$data_available = 0;

//function to calculate average fees
function avg_fees($competitors, $mm_avg_fees, $data_available){

        foreach ($competitors as $competitor) {
            //impose condition to increment data_available
            //only if there is data in the minSingleCareFee column for the $competitor
            if ($competitor->minSingleCareFee != NULL) {
                $mm_avg_fees = $mm_avg_fees + $competitor->minSingleCareFee;
                $data_available = $data_available + 1; 
            } else {}
        }
    return $mm_avg_fees / $data_available;
}

echo echo 'The current average for single room fees in your micromarket is: ' . avg_fees($competitors, $mm_avg_fees, $data_available);
  1. 在班級里面嗎? 如果是這樣,您就不能那樣做。
  2. else {}是不必要的。
  3. 您可以使用$ data_available ++代替那里的內容。
  4. 您正在將var視為對象。 什么是var或對象?

    $ competitor-> minSingleCareFee

並且您已設定競爭對手是那一刻競爭對手陣列的價值。

用這個:

//declaring variables
$mm_avg_fees = 0;
$data_available = 0;

//function to calculate average fees
function avg_fees($competitors, $mm_avg_fees, $data_available){

        foreach ($competitors as $competitor) {
            //impose condition to increment data_available
            //only if there is data in the minSingleCareFee column for the $competitor
            if (!empty($competitor->minSingleCareFee)) {
                $mm_avg_fees = $mm_avg_fees + $competitor->minSingleCareFee;
                $data_available = $data_available + 1; 
            }
        }
    return $mm_avg_fees / $data_available;
}

echo 'The current average for single room fees in your micromarket is: ' . avg_fees($competitors, $mm_avg_fees, $data_available);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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