❶ 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/>';
}
運行結果:循環輸出數組中的每個值。