Max from MySQL 查询来自数组的一部分

Max from MySQL query from one part of array

我有一个来自 MySQL 查询的数组,它有两个部分,我只想从第一部分获得最大值,但是当我 max($row) 它 returns 日期的最大值,因为这些值更高。当我尝试 max(array_column($row, 'SUM(DISTRIBUTED_AMOUNT / EXCHANGE_RATE)')); 我得到这个错误 max(): Array must contain at least one element 有没有办法只根据第一部分来做?

Array
(
    [SUM(DISTRIBUTED_AMOUNT / EXCHANGE_RATE)] => 19.1630000055071
    [DATE] => 2013-11
)

在跟踪所需属性的同时使用 foreach。以日期为例。保留一个变量 MaxDate = FirstRow[Date]。然后遍历所有这些并检查实际行是否高于实际 MaxDate。这是一种蛮力方式,但肯定会奏效。您还可以使用 SQL 实际取最大值。

SELECT MAX(something) FROM 
       SELECT SUM(DISTRIBUTED_AMOUNT / EXCHANGE_RATE) AS something
       FROM whatever;

PHP 暴力破解:

$max = $result[0]['SUM(DISTRIBUTED_AMOUNT / EXCHANGE_RATE)'];
foreach($result as $row){
    if($row['SUM(DISTRIBUTED_AMOUNT / EXCHANGE_RATE)'] > $max)
         max = $row['SUM(DISTRIBUTED_AMOUNT / EXCHANGE_RATE)'];
}

echo $max;

请注意,您必须使用结果中的所有行。记得检查查询结果中是否有元素