php學(xué)習(xí)筆記 數(shù)組遍歷實(shí)現(xiàn)代碼
更新時(shí)間:2011年06月09日 22:21:23 作者:
php學(xué)習(xí)筆記 數(shù)組遍歷實(shí)現(xiàn)代碼,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:
<?php
/* 數(shù)組的遍歷
*
* 1.使用for語(yǔ)句循環(huán)遍歷數(shù)組
* 1.其他語(yǔ)言(只有這一種方式)
* 2.PHP中這種方式不是首選的方式
* 3.數(shù)組必須是索引數(shù)組,而且下標(biāo)必須是連續(xù)的。
* (索引數(shù)組下標(biāo)可以不連續(xù),數(shù)組還有關(guān)聯(lián)數(shù)組,這兩種不能遍歷)
*
* 2.使用foreach語(yǔ)句循環(huán)遍歷數(shù)組
* foreacho(數(shù)組變量 as 變量值){
* //循環(huán)體
* }
* 1.循環(huán)次數(shù)由數(shù)組的元素個(gè)數(shù)決定
* 2.每一次循環(huán)都會(huì)將數(shù)組中的元素分別賦值給后面變量
*
* foreach(數(shù)組變量 as 下標(biāo)變量=> 值變量){
* }
*
*
* 3.while() list() each() 組合循環(huán)遍歷數(shù)組
*
* each()函數(shù):
* 1.需要一個(gè)數(shù)組作為參數(shù)
* 2.返回來(lái)的也是一個(gè)數(shù)組
* 3.返回來(lái)的數(shù)組是0,1,key,value四個(gè)下標(biāo)(固定的)
* 0和key下標(biāo)是當(dāng)前參數(shù)數(shù)組元素的鍵
* 1和value下標(biāo)是當(dāng)前參數(shù)數(shù)組元素的值
* 4.默認(rèn)當(dāng)前元素就是第一個(gè)元素
* 5.每執(zhí)行一次后就會(huì)將當(dāng)前元素向后移動(dòng)
* 6.如果到最后的元素再執(zhí)行這個(gè)函數(shù),則返回false
* list()函數(shù):
* 1. list()=array();需要將一個(gè)數(shù)組賦值給這個(gè)函數(shù)
* 2.數(shù)組中的元素個(gè)數(shù),要和list()函數(shù)中的參數(shù)個(gè)數(shù)相同
* 3.數(shù)組中的每個(gè)元素值會(huì)賦值list()函數(shù)中的每個(gè)參數(shù),list()將每個(gè)參數(shù)轉(zhuǎn)為變量
* 4.list()只能接受索引數(shù)組
* 5.按索引的下標(biāo)順序來(lái)給參數(shù)賦值
*
*
*
*/
//for語(yǔ)句遍歷數(shù)組
$user=array(1,"zhangsan",40,"nan");
for($i=0;$i<4;$i++)
{
echo"\$user[{$i}]=".$user[$i]."<br>";
}
//使用foreach
$user=array(1,"zhangsan",40,"nan");
foreach($user as $val)//$val是自定義變量
{
echo $val."<br>";//輸出與下標(biāo)無(wú)關(guān)
}
foreach($user as $key=>$val)//$val $key 都是自定義變量
{
echo $key."=====>".$val."<br>";
}
//foreach遍歷多維數(shù)組
$info=array(
"user"=>array(
//$user[0]
array(1, "zansan", 10, "nan"),
//$user[1][1]
array(2, "lisi", 20, "nv"), //$user[1]
//$user[2]
array(3, "wangwu", 30, "nan")
),
"score"=>array(
array(1, 100, 90, 80),
array(2, 99, 88, 11),
array(3, 10, 50, 88)
),
"connect"=>array(
array(1, '110', 'aaa@bbb.com'),
array(2, '120', 'bbb@ccc.com'),
array(3, '119', 'ccc@ddd.com')
)
);
foreach($info as $tableName=>$table)
{
echo '<table align="center" width="500" border="1">';
echo '<caption><h1>'.$tableName.'</h1></caption>';
foreach($table as $row)
{
echo '<tr>';
foreach($row as $col)
{
echo '<td>'.$col.'</td>';
}
echo '</tr>';
}
echo '</table>';
}
//each()的使用
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
$a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id ) 默認(rèn)是第一個(gè)元素的值
print_r($a);
$b=each($user);
print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 每執(zhí)行一次,向后遍歷一個(gè)
$c=each($user);
print_r($c);//Array ( [1] => 10 [value] => 10 [0] => age [key] => age )
$d=each($user);
print_r($d);//Array ( [1] => nan [value] => nan [0] => sex [key] => sex )
$e=each($user);
var_dump($e);//bool(false) 當(dāng)沒(méi)有元素時(shí),返回的值
//each()配合while遍歷
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while($arr=each($user))
{
//echo $arr[0]."====>".$arr[1]."<br>";//通過(guò)0,1 來(lái)顯示 鍵(下標(biāo)) 和 值
echo $arr["key"]."===>".$arr["value"]."<br>";//通過(guò)key,value 來(lái)顯示 鍵 值
}
//list()函數(shù)的使用
list($name,$age,$sex)=array("zhangsan",10,"nnnnn");
echo $name."<br>";
echo $age."<br>";
echo $sex."<br>";
//另一種使用方法
list(,,$sex)=array("zhangsan",10,"nnnnn");
echo $sex."<br>";//只把性別轉(zhuǎn)換為變量
//ip判斷
$ip="192.168.1.128";
list(,,,$d)=explode(".",$ip);//explode表示用 . 來(lái)分隔,并返回一個(gè)數(shù)組
echo $d;//取出128
//list()只能接收索引數(shù)組的例子
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) 按照索引下標(biāo)的順序給list中的參數(shù)賦值,所以先是 0鍵 然后是 1值
echo $key."--->".$value;
//while list() each() 組合使用
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while(list($key,$value)=each($user))
{
echo $key."--->".$value."<br>";
}
//多次循環(huán)只顯示一次的解決方法
//使用數(shù)組的內(nèi)部指針控制函數(shù)
//next(數(shù)組);數(shù)組指針移動(dòng)到下一個(gè)
//prev(數(shù)組);數(shù)組指針移動(dòng)到上一個(gè)
//reset(數(shù)組);數(shù)組指針移動(dòng)到第一個(gè)(復(fù)位)
//end(數(shù)組);數(shù)組指針移動(dòng)到最后一個(gè)
//current(數(shù)組);獲取當(dāng)前元素的值,當(dāng)前元素時(shí)指數(shù)組指針指向的元素。
//key(數(shù)組);獲取當(dāng)前元素的鍵值(下標(biāo))
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while(list($key,$value)=each($user))
{
echo $key."--->".$value."<br>";
}
//在這里將數(shù)組指針移動(dòng)到第一個(gè)以下循環(huán)就能輸出
//reset($user)
while(list($key,$value)=each($user))//因?yàn)閑ach()到最后一個(gè)返回false,所以循環(huán)直接跳出
{
echo $key."--->".$value."<br>";
}
while(list($key,$value)=each($user))//因?yàn)閑ach()到最后一個(gè)返回false,所以循環(huán)直接跳出
{
echo $key."--->".$value."<br>";
}
echo current($user)."=====>".key($user);
?>
您可能感興趣的文章:
- PHP 數(shù)組遍歷方法大全(foreach,list,each)
- PHP 數(shù)組遍歷foreach語(yǔ)法結(jié)構(gòu)及實(shí)例
- 深思 PHP 數(shù)組遍歷的差異(array_diff 的實(shí)現(xiàn))
- 深思 PHP 數(shù)組遍歷的差異(array_diff 的實(shí)現(xiàn))
- PHP 數(shù)組遍歷順序理解
- PHP多維數(shù)組遍歷方法(2種實(shí)現(xiàn)方法)
- PHP數(shù)組遍歷知識(shí)匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測(cè)速)
- php若干單維數(shù)組遍歷方法的比較
- PHP數(shù)組遍歷的幾種常見(jiàn)方式總結(jié)
相關(guān)文章
PHP實(shí)現(xiàn)網(wǎng)上點(diǎn)歌(二)
PHP實(shí)現(xiàn)網(wǎng)上點(diǎn)歌(二)...2006-10-10php面向?qū)ο笕ヂ?(十二) 抽象方法和抽象類(lèi)
在OOP 語(yǔ)言中,一個(gè)類(lèi)可以有一個(gè)或多個(gè)子類(lèi),而每個(gè)類(lèi)都有至少一個(gè)公有方法做為外部代碼訪(fǎng)問(wèn)其的接口。而抽象方法就是為了方便繼承而引入的,我們先來(lái)看一下抽象類(lèi)和抽象方法的定義再說(shuō)明它的用途。2009-09-09PHP企業(yè)級(jí)應(yīng)用之常見(jiàn)緩存技術(shù)篇
用的最廣的例子看Discuz的搜索功能,把結(jié)果ID緩存到一個(gè)表中,下次搜索相同關(guān)鍵字時(shí)先搜索緩存表。2011-01-01整合了前面的PHP數(shù)據(jù)庫(kù)連接類(lèi)~~做成一個(gè)分頁(yè)類(lèi)!
整合了前面的PHP數(shù)據(jù)庫(kù)連接類(lèi)~~做成一個(gè)分頁(yè)類(lèi)!...2006-11-11一篇不錯(cuò)的PHP基礎(chǔ)學(xué)習(xí)筆記
一篇不錯(cuò)的PHP基礎(chǔ)學(xué)習(xí)筆記...2007-03-03