我有一个来自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
)
答案 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;
请注意,您必须使用结果中的所有行。请记住检查查询结果中是否有元素。