我无法绕过这一个.
当我创建一个数组时,它以空值开头.需要在数组中的值从第二个开始.
阵:
Array (
[0] =>
[1] => Value 1
[2] => Value 2
[3] => Value 3
)
Run Code Online (Sandbox Code Playgroud)
码:
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
do{
array_push($categories, $category['description']);
}while($category=mysql_fetch_assoc($query2));
Run Code Online (Sandbox Code Playgroud)
如何使数组中的第一项成为Value 1?
sen*_*enK 21
这是因为while while循环尝试while循环
while($category=mysql_fetch_assoc($query2)){
array_push($categories, $category['description']);
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*s G 14
答案非常简单:在阅读第一行之前,您正在推送第一个元素.正确的做法是使用前置条件循环:
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
while($category=mysql_fetch_assoc($query2)) {
array_push($categories, $category['description']);
}
Run Code Online (Sandbox Code Playgroud)
并且,请切换到使用PDO.
Nul*_*teя 12
while循环如何工作
与常规while循环的主要区别在于do-while循环的第一次迭代保证运行(真值表达式仅在迭代结束时检查),而它可能不一定与常规while循环一起运行(在每次迭代开始时检查真值表达式,如果从一开始就评估为FALSE,则循环执行将立即结束).资源
所以在你的程序中发生的事情是你在读第一行之前推送第一个元素.
所以请改用
wile循环会做什么?如在流程图中它将首先检查而不是进入循环体内,因此在读取第一行后推送元素
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
while($category=mysql_fetch_assoc($query2)) {
array_push($categories, $category['description']);
}
Run Code Online (Sandbox Code Playgroud)
注意
好读
因为你应该使用while循环而不是do-while循环.
while($category = mysql_fetch_assoc($query2)) {
array_push($categories, $category['description']);
}
Run Code Online (Sandbox Code Playgroud)
在代码中,而不是在循环的第一次迭代中(第一次进入do块时),$category因此未设置,因此将第一个数组值设置为空.
首先将value(array_push())写入数组,然后实际获取值(mysql_fetch_assoc()).
您需要先获取值,然后将其放入数组中!
$categories = array();
$query2 = mysql_query("SELECT * FROM books_categories");
while(($category = mysql_fetch_assoc($query2)) !=== false) {
array_push($categories, $category['description']);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |