[英]PHP - Find max/highest value
我有這個查詢:
$stmt=$dbh->prepare("select round((expire - unix_timestamp()) / 86400) as days, count(*) as cnt from xeon_users_rented WHERE user_by=:username group by days;");
$stmt->bindParam(":username",$userdata['username']);
$stmt->execute();
$data=$stmt->fetchAll();
這將返回此數組結果var_dump($data)
:
array(2) {
[0]=>
array(4) {
["days"]=>
string(2) "27"
[0]=>
string(2) "27"
["cnt"]=>
string(1) "2"
[1]=>
string(1) "2"
}
[1]=>
array(4) {
["days"]=>
string(3) "116"
[0]=>
string(3) "116"
["cnt"]=>
string(1) "8"
[1]=>
string(1) "8"
}
}
然后,我想獲得$data
結果的最高值:
echo max($data["days"]);
Althoug不起作用,因為沒有任何回聲。 我究竟做錯了什么?
不會
SELECT MAX(column_name) FROM table_name;
在查詢中已經做到了嗎? 僅選擇最高值-從而節省帶寬,並且不需要循環就浪費更多的資源。 我無法用您的特定查詢來測試它。
$data['days']
不是數組。 您有一個數組數組,每個數組都有自己的'days'元素。
您可以將“ days”元素映射到數組,然后獲取max()
:
echo max(array_map(function($d){
return $d['days'];
}, $data));
如我所見,您的數組是二維的,您需要遍歷這兩個數組,然后從中獲取最大值。
for($i=0;$i<=sizeof($data);$i++) { echo max($data[$i]["days"]); }
這應該可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.