[英]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);
您正在將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.