2013-10-22 27 views
-1

我有一個數組,後來被jQuery用來繪製圖表(因此json_encode)。用PHP返回數組的最後一個值

<?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);  
?> 

的$最終輸出是[[-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。

+0

那麼如果你要求'key'的值,那就是你得到的......'end'給你最後一個數組元素的值已經作爲返回值,所以就使用它。 – CBroe

+0

PHP只是根據所告知的,所以你對'end()'的示例調用將輸出到它所在的位置。在不影響當前數組的情況下獲取最後一個元素的旁註是(討厭的)'array_shift(array_values($ array))' – gwillie

回答

2

end()不經過您的多維數組IIRC。對於你的價值,如$dataset1[count($dataset1)-1][1]應該是足夠的。

+0

我得到錯誤'意外')'' –

+1

@square_eyes固定。 (但對任何人來說應該是微不足道的;-)) – nietonfir

+0

謝謝!似乎現在工作正常。我會用這個解決方案來避免使用end()。 –

0
+0

這不會改變我的數組嗎?正如我剛纔提到的那樣,數組已經被用於一個圖表(AJAX也更新了這個圖表),所以我不想被搞亂。 –

+0

你應該看看這個文檔:http://php.net/manual/en/function.end.php – nietonfir

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

我也試過,它只是返回'Array' –

+0

'$ intOutput = current($ dataset1)[1]; ' – Carlos

+0

並且返回'syntax error,unexpected'['' –

0

您始終可以count()數組中的記錄數,然後使用count() - 1訪問其最後一條記錄。

0

我建議您先找出JSON長度,然後使用length-1作爲關鍵字,您可以從JSON中的鍵值對中獲取值。

+0

也許這是比較安全的,你可以給我一個例子嗎? –

相關問題