2016-04-03 100 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); 
 
}

相关问题