❶ php使用while循环赋值给数组
先问你几点有关你这个代码的问题,不然我没办法回答,问题都在后面的注释处
$lp=mysql_query("SELECT * FROM zp where sID=$row[ID]");
//该查询中$row[ID]怎么来的,$row[ID]是在后面的循环体中定义的,这里走来就出现不出错吗
$lp_num=mysql_num_rows($lp);
while($row = mysql_fetch_array($lp))
{
$lp_xm[]=$row[xm];$lp_birth[]=$row[birth];$lp_dead[]=$row[dead];$lp_ID[]=$row[ID];
$q=0;
$en_num=0;
while($q<$lp_num)
{
$en=mysql_query("SELECT * FROM zp where sID=$lp_ID[$q]");//执行查询b
$en_num=mysql_num_rows($en)+$en_num;
//上面的值 $en_num应该等于数据行数X(1+2+3+4+5+...+总行数$lp_num),但是这一步是想做什么呢,不理解
while($row = mysql_fetch_array($en))
{
$en_xm[]=$row[xm];$en_birth[]=$row[birth];$en_dead[]=$row[dead];$en_ID[]=$row[ID];
}
echo "$en_num\n";
//问题中的不是说 输出$en_xm吗,怎么输出的是$en_num
$q++;
}
}
❷ 关于php数组while循环问题!
要不就把print_r($num);放到for循环外面,要么就在每次打印后unset($num)一下。
因为你这个$num是数组,循环一次就累加了一次,你没有清空就会一直累加。
❸ php数组指针的问题,while each遍历
一开始没看出你的问题来,差点答错了。你的问题是出现在&$value上,而不是数组的移动。
你foreach最后的$value是$name['name4']的引用,while的循环中,不断变化着$name['name4']的值,你可以在while循环最后每次都打印完整数组看出效果。
关键点:变量引用在循环结束后没有删除,你在foreach后面加一句unset($value);就没问题了
---邪恶的分割线---
这里涉及到数组遍历时指针移动问题。
1、foreach循环的每次循环中,数组内部的指针向前移一步,直到越界退出
2、当foreach开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在foreach循环之前调用reset()。
3、each()返回array数组中当前指针位置的键/值对并向前移动数组指针
4、如果内部指针越过了数组的末端,则each()返回FALSE
你的例子,前面的foreach遍历会导致数组$name最终指针越界退出,然后,如果没有使用reset($name),则$name的指针是foreach执行后的位置,是越界的,直接使用each会返回false
❹ php中用while()、list()、each()遍历数组后,数组指针是停留在数组外面还是在数组最后一个单元上
停留在最后一个单元,所以无论是while 还是each,都有替代语法endwhile,来表示结束,关闭数据连接。
❺ 关于PHP while循环数组相加问题
$countnum = 0;//要统计相加的变量
while($forumattach = DB::fetch($queryattach)) {
$countnum += intval($forumattach['size']);//每次都把数值添加到countnum这个变量上面
}
echo $countnum;//这样就能得到总数了
❻ PHP中使用while循环写入数组的方法
循环写入示例如下(其他循环写入原理也是一样的):
<?php
//定义空数组
$arr=array();
//循环初始化条件
$i=1;
//根据判断进行while循环
while($i<=10){
//写入数组
$arr[]="元素".$i;
//递增
$i++;
}
print_r($arr);
/*
*Array
(
[0]=>元素1
[1]=>元素2
[2]=>元素3
[3]=>元素4
[4]=>元素5
[5]=>元素6
[6]=>元素7
[7]=>元素8
[8]=>元素9
[9]=>元素10
)*/
?>
❼ php中数组怎么循环输出
可以使用foreach函数输出。举例如下:
PHP:
$arr=[1,2,3,4,5];
foreach($arras$v){
echo$v.'<br/>';
}
运行结果:循环输出数组中的每个值。