我有一个$competitors
(这是从MySQL检索的对象数组)(例如9),我有$competitors[i]->minSingleCarefee
数据,即费用数据。我想对这些费用数据进行平均处理,但可能数据集并不完整,即我没有9个竞争对手的费用数据。因此,如果费用数据可用,我通过使用if语句并且递增$data_available
来跟踪该数据。问题与foreach和循环语句在php
我的问题是,它似乎代码有缺陷,因为它只返回第一个竞争对手的费用价值......我不知道为什么!同时$ 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_dump($竞争对手); – Steve
尝试改变这个'if($ competitor-> minSingleCareFee!= NULL){'如果(!is_null($ competitor-> minSingleCareFee)){' – Vagabond
'不能帮助我们知道什么是$竞争对手。因此,像@ user574632 –