2016-04-03 75 views
0

我有一個for loopPHP:在關聯數組中獲取最後一個唯一元素

$TOTAL_GOALS = 5; 
for($i= 1; $i<=$TOTAL_GOALS; $i++) { 
    $EACH_POST_QUERY = mysql_query("SELECT item_id FROM likes WHERE item_id='$i'"); 
    $EACH_POST_TOTAL_LIKES = mysql_num_rows($EACH_POST_QUERY); 
    $EACH_POST_RESULT = array(); 
    $EACH_POST_RESULT[$i] = $EACH_POST_TOTAL_LIKES; 
} 

在循環中,我射擊動態查詢和獲取結果到一個名爲$EACH_POST_TOTAL_LIKES變量。

我想在此基礎上創建一個關聯數組。所以,我創建了一個名爲$EACH_POST_RESULT = array();的數組,並將價值推向它。

我得到的輸出是最後一個元素 - 例如:

3:16

我的預期輸出 -

1:12 2:14 3:16

我送結果以此來JS -

$SERVER_DATA = array("TG"=>$TOTAL_GOALS, "EACH_POST_LIKES"=> $EACH_POST_RESULT); 
echo json_encode($SERVER_DATA); 

Con鞋底只顯示我最後一次進入。爲什麼數組覆蓋值和存儲最後一個?

缺什麼?

回答

1

您需要之前移動此行循環:

$EACH_POST_RESULT = array(); 

否則會,每次空數組來代替!

+0

謝謝你!它正在工作。不能接受或標記。 – Aavin

2

您每次在循環中創建array。如果您想要統計一次所有參數,我建議您使用MySQL Between Clause在單個查詢中執行此操作。

試試這個:

$TOTAL_GOALS = 5; 
 
$EACH_POST_RESULT = array(); 
 
for ($i = 1; $i <= $TOTAL_GOALS; $i++) { 
 
    $EACH_POST_QUERY = mysql_query("SELECT item_id FROM likes WHERE item_id='$i'"); 
 
    $EACH_POST_TOTAL_LIKES = mysql_num_rows($EACH_POST_QUERY); 
 
    array_push($EACH_POST_RESULT, $EACH_POST_TOTAL_LIKES); 
 
}

相關問題