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

时间:2015-01-01 05:32:58

标签: php mysql arrays

我有一个来自MySQL查询的数组,其中包含两个部分,我想从第一部分获得最大值,但是当我执行max($row)时,它返回日期的最大值,因为这些值是更高。当我尝试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
)

1 个答案:

答案 0 :(得分:0)

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

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

PHP Brute-force:

$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;

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