我有一个for循环
。
$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);
控制台只向我显示最后一个条目。为什么数组会覆盖值并存储最后一个?
缺少什么?
最佳答案
您每次在循环中都会创建数组
。如果您想一次性获取所有参数的计数,我建议您使用 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);
}
关于javascript - PHP:获取关联数组中的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383522/