我在使用PHP时遇到了一些基本问题。我想从MYSQL数据库中检索一列数字的平均值。我正在使用SELECT AVG()来获取数据库中的结果。问题是返回的不是浮点数,而是带有一个键的值的关联数组。这是我以json形式回归的事情:
array(1) { [0]=> array(1) { ["AVG(enterpriseAppDev.employee.age)"]=> string(7) "54.4538" } }
在我的PHP项目中,我将上面的内容分配给变量$ average。
有谁能告诉我如何提取$ average变量的值(54.4538)并在以后使用它?
我尝试使用foreach循环来获取像这样的值
foreach ($average as $x => $x_value) {
$average = $x_value;
return $average;
}
我还尝试使用STDEV和STDEVP在SQL中执行标准偏差,但是我得到一条错误,说这些函数不存在。
非常感谢任何帮助。
答案 0 :(得分:1)
2个问题:
您将值$average
分配给循环,而它在循环参数中...可能导致崩溃...
因此,您可以使用return $x_value
而无法将其$average
那么,这里你不需要循环就这样做(没有循环)
return $average[0]['AVG(enterpriseAppDev.employee.age)']
如果你真的想要一个循环,你可以这样做:
foreach ($average as $line_number => $line) {
foreach($line as $key => $x_value) {
return $x_value;
}
}
答案 1 :(得分:0)
1。 如果你总是得到这个多维数组,你可以用reset重置数组的内部指针,以“压扁”第一个数组。这应该可以解决问题:
var_dump(reset($average[0]));
// or you can do it twice to get the same result as before
$average = reset($average);
var_dump(reset($average));
2。 但是,您可以使用SQL中的别名获得更好的密钥名称:
SELECT AVG() AS myavg
// so you should end up with a result like:
$queryResult = array(
array(
"myavg" => "54.4538"
)
);
// and get the average
$average = reset($queryResult);
var_dump($average['myavg']);
3。 或者更奇怪的是,如果你使用的是php 5.4,你可以直接从函数结果获得一个数组引用:
var_dump(reset($average)['avg']);