我想从while循环中存储值,但不是以多维方式存储:
$movies_id = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row['id'];
$title_id = $row['title_id'];
$movies_id[] = [$id => $title_id];
}
print_r($movies_id);
我没有办法,怎么做,如果我只是写$movies_id = [$id => $title_id];
它只显示最后一个值。
先谢谢你。
答案 0 :(得分:8)
您需要正确设置值。
$movies_id = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row['id'];
$title_id = $row['title_id'];
$movies_id[$id] = $title_id; // The proper way
//$movies_id[] = [$id => $title_id];
}
print_r($movies_id);
更易读的代码是:
$movies_id = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$movies_id[$row['id']] = $row['title_id'];
}
print_r($movies_id);
并且会导致
array (
1 => 'Title 1',
2 => 'Title 2',
4 => 'Title 4',
8 => 'Title 8',
)
无钥匙洗脱将是:
$movies_id = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$movies_id[] = $row['title_id'];
}
print_r($movies_id);
并且会导致
array (
0 => 'Title 1',
1 => 'Title 2',
2 => 'Title 4',
3 => 'Title 8',
)
答案 1 :(得分:0)
我可能误解了你的目标,但这可能会这样做:
替换
$movies_id[] = [$id => $title_id];
与
$movies_id[$id] = $title_id;
答案 2 :(得分:0)
如果PHP版本低于5.4,您的代码将无效。在这种情况下,您可以使用以下内容。
$movies_id = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row['id'];
$title_id = $row['title_id'];
$movies_id[] = array($id => $title_id);
}
print_r($movies_id);
答案 3 :(得分:0)
而不是这一行
$movies_id[] = [$id => $title_id];
使用以下
$movies_id[$id] = $title_id;