我有一个while循环,我从中获取post id并将它们添加到数组中,如下所示
$tobi = array();
while($result = mysqli_fetch_array($msql)){
$imp = $result['msg_id']; // these id are like 316 etc
array_push($tobi, $imp);
}
print_r($tobi);
但是当我打印出阵列时,结果
数组([0] => 316)数组([0] => 315)
为什么数组创建了另一个元素? 我希望数组像
Array ( [0] => 316 [1] => 315 )
我尝试使用$ tobi [] = $ imp;也得到了相同的结果
执行print_r($ result);
之后Array ( [0] => 318 [msg_id] => 318 ) Array ( [0] => 318 ) Array ( [0] => 317 [msg_id] => 317 ) Array ( [0] => 317 )
执行print_r($ msql);
之后mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 2 [type] => 0 ) Array ( [0] => 318 ) Array ( [0] => 317 )
答案 0 :(得分:2)
你做得太多了。来自评论的SQL
$msql = mysqli_query($connecDB, "SELECT msg_id FROM messages WHERE time > $last_post_id ORDER BY time DESC")
只获取msg_id,因此当您调用 $imp = $result['msg_id'];
时,您正在创建它。因此,为什么你的数组令人困惑。
你应该能够做到:
$tobi = array();
while($result = mysqli_fetch_array($msql)){
$tobi[] = $result[0];
}
print_r($tobi);
<强>更新强>
我不确定为什么会给出奇怪的结果。它似乎是以我们在提供的代码中看不到的方式输出。我使用了我的数据库并运行:
$msql = mysqli_query($link, "SELECT f_name FROM leads");
有5个条目2没有f_name。当我做print_r($msql)
时,我收到了以下内容:
mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 5 [type] => 0 )
然后,我使用数字和关联方式运行上面的代码,返回(双向):
Array ( [0] => [1] => TEST [2] => [3] => Coury [4] => 222222 )
同样在这个集合中,我能够运行OP原始代码并获得预期的结果。
答案 1 :(得分:0)
试试这个,我希望这会奏效!
$tobi = array(); $new_arr = array();
while($result = mysqli_fetch_array($msql)){
$imp = $result['msg_id'];
$new_arr[] = array_push($tobi, $imp);
}
print_r($new_arr);
答案 2 :(得分:0)
试试这个:
$tobi = array();
while($result = mysqli_fetch_array($msql)){
if(isset($result['msg_id']))
{
$imp = $result['msg_id']; // these id are like 316 etc
array_push($tobi, $imp);
}
}
print_r($tobi);
答案 3 :(得分:-1)
使用它。它可能对你有所帮助。
$tobi = array();
while($result = mysqli_fetch_array($msql)){
$imp = $result['msg_id'];
$tobi[]= $imp;
}
print_r($tobi);