我不能理解这一点。
当我创建一个数组时,它以一个空值开始。需要在数组中的值从秒开始。
数组:
Array (
[0] =>
[1] => Value 1
[2] => Value 2
[3] => Value 3
)代码:
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
do{
array_push($categories, $category['description']);
}while($category=mysql_fetch_assoc($query2));如何实现将数组中的第一项设置为值1?
发布于 2012-12-19 20:24:24
这是因为do while循环try while循环
while($category=mysql_fetch_assoc($query2)){
array_push($categories, $category['description']);
}发布于 2012-12-19 20:25:26
答案很简单:在读取第一行之前先推入第一个元素。正确的方法是使用前置条件循环:
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
while($category=mysql_fetch_assoc($query2)) {
array_push($categories, $category['description']);
}并且,请切换到使用PDO。
发布于 2012-12-19 20:30:29
while循环是如何工作的

与常规while循环的主要区别在于,do-while循环的第一次迭代是肯定会运行的(只有在迭代结束时才会检查真值表达式),而它不一定会与常规while循环一起运行(真值表达式会在每次迭代开始时检查,如果它从一开始就计算为FALSE,则循环执行将立即结束)。source
所以在你的程序中,发生了什么,你在读取第一行之前推入了第一个元素。
所以请改用while
wile循环会做什么呢?在流程图中,它将首先检查,然后进入循环体,因此元素在读取第一行后被推入
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
while($category=mysql_fetch_assoc($query2)) {
array_push($categories, $category['description']);
}便笺
PHP整个ext/mysql扩展提供了所有以mysql_前缀命名的函数,它是officially deprecated as of PHP v5.5.0,将来将被删除。因此请使用PDO或MySQLi
好读
https://stackoverflow.com/questions/13952409
复制相似问题