从关联数组中提取值时遇到问题

Trouble with extracting a value from an associative array

我在使用 PHP 时遇到一些基本问题。我想从 MYSQL 数据库中检索一列数字的平均值。我正在使用 SELECT AVG() 来获取数据库中的结果。问题是返回的不是浮点数,而是一个 key:value 的关联数组。这是我以 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 中执行标准偏差,但我收到一条错误消息,指出这些函数不存在。

如有任何帮助,我们将不胜感激。

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。 如果你总是得到这个多维数组,你可以将数组的内部指针 reset 重置为 "flatten" 第一个。这应该可以解决问题:

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']);