使用 PHP 返回数组的最后一个值


Return last value of array with PHP

我有一个数组,后来被jquery用来绘制图表(因此json_encode)。

<?php   
    $server = "myserver:1234";
    $user="dbuser";
    $password="userpass";  
    $database = "dbname";
    $connection = mysql_connect($server,$user,$password);
    $db = mysql_select_db($database,$connection);
    $query = "SELECT Y FROM listener_incr";
    $result = mysql_query($query);        
    $i = -60;
    while($row = mysql_fetch_assoc($result))
    {
        $dataset1[] = array($i,$row['Y']);
        $i++;
    }
    $final = json_encode($dataset1,JSON_NUMERIC_CHECK);    
?>  

$final的输出是[[-60,5],[-59,3],[-58,6],...[-1,7],[0,8]]

除了用于绘制图表的数据系列之外,我还想将数组的最后一个值回显到div。

这是我尝试过的...

<div id="LastInArray">
  Current count: <?php
   end($dataset1);
   $intOutput = key($dataset1);
   echo $intOutput;
  ?>
</div>

但是上面的输出Current count: 59,我不明白。我想要的div 输出(在本例中)是 Current count: 8 .

稍后我想使用 AJAX 更新此值,这就是它在div 中的原因。

end()不会遍历您的多维数组 IIRC。对于你的价值来说,像$dataset1[count($dataset1)-1][1]这样的东西应该就足够了。

$tmp = current($dataset1); // return [-1, 8]
$intOutput = $tmp[1];  // return 8

使用array_pop检查文档 http://php.net/manual/en/function.array-pop.php

您始终可以计算数组中的记录数(),然后使用 count()-1 访问其最后一条记录。

我建议您先找出 JSON 长度,然后使用 length-1 作为键,您可以从 JSON 中的键值对中获取值。