php中foreach和loop语句的问题
我有许多php中foreach和loop语句的问题,php,mysql,if-statement,foreach,Php,Mysql,If Statement,Foreach,我有许多$competitors(这是从MySQL检索到的一个对象数组)(比如9),我有$competitors[I]->minSingleCarefee数据,即费用数据。我想对这些费用数据进行平均,但可能是数据集不完整,即我没有9个竞争对手的所有费用数据。因此,我通过使用if语句并在费用数据可用时递增$data\u available来跟踪这一点 我的问题是,代码似乎有缺陷,因为它只返回第一个竞争对手的费用值。。。我不知道为什么!另外,当我回显$data_时,它总是以0结尾 //declari
$competitors
(这是从MySQL检索到的一个对象数组)(比如9),我有$competitors[I]->minSingleCarefee
数据,即费用数据。我想对这些费用数据进行平均,但可能是数据集不完整,即我没有9个竞争对手的所有费用数据。因此,我通过使用if语句并在费用数据可用时递增$data\u available
来跟踪这一点
我的问题是,代码似乎有缺陷,因为它只返回第一个竞争对手的费用值。。。我不知道为什么!另外,当我回显$data_时,它总是以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);
//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);
请发布var_转储($competitors);尝试将此
if($competitor->minSingleCareFee!=NULL){
更改为此if(!is_NULL($competitor->minSingleCareFee)){
在我们知道$competitors内部的内容之前帮不上忙。因此按照@user574632@user574632这里是一个数据转储块:数组(5){[0]=>object(stdClass)#153(41){[“id”]=>字符串(1)“1”[“PostcodeinCodepointFormat”]=>字符串(6)“XXXXX”[“Home_name”]=>字符串(9)“XXXXXX”[“minSingleCareFee”]字符串(3)“750”@sankalphatt这是数据转储:数组(5){[0]=>对象(stdClass){153(41){[“id”=>字符串(1)“1”[“Postcodeincodeincodepointormat”]=>字符串(6)“XXXXX”[“Home_name”]=>字符串(9)“XXXXXX”[]字符串(3)“750”等…更多关于提示而非答案。好的,让我检查一下…是否有一种方法可以让我访问avg_费用函数之外的$data_可用变量?使用全局关键字。参考: