簡體   English   中英

PHP-查找最大值/最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM