程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php學習筆記 數組遍歷實現代碼

php學習筆記 數組遍歷實現代碼

編輯:PHP綜合
復制代碼 代碼如下:
<?php
/* 數組的遍歷
*
* 1.使用for語句循環遍歷數組
* 1.其他語言(只有這一種方式)
* 2.PHP中這種方式不是首選的方式
* 3.數組必須是索引數組,而且下標必須是連續的。
* (索引數組下標可以不連續,數組還有關聯數組,這兩種不能遍歷)
*
* 2.使用foreach語句循環遍歷數組
* foreacho(數組變量 as 變量值){
* //循環體
* }
* 1.循環次數由數組的元素個數決定
* 2.每一次循環都會將數組中的元素分別賦值給後面變量
*
* foreach(數組變量 as 下標變量=> 值變量){
* }
*
*
* 3.while() list() each() 組合循環遍歷數組
*
* each()函數:
* 1.需要一個數組作為參數
* 2.返回來的也是一個數組
* 3.返回來的數組是0,1,key,value四個下標(固定的)
* 0和key下標是當前參數數組元素的鍵
* 1和value下標是當前參數數組元素的值
* 4.默認當前元素就是第一個元素
* 5.每執行一次後就會將當前元素向後移動
* 6.如果到最後的元素再執行這個函數,則返回false
* list()函數:
* 1. list()=array();需要將一個數組賦值給這個函數
* 2.數組中的元素個數,要和list()函數中的參數個數相同
* 3.數組中的每個元素值會賦值list()函數中的每個參數,list()將每個參數轉為變量
* 4.list()只能接受索引數組
* 5.按索引的下標順序來給參數賦值
*
*
*
*/
//for語句遍歷數組
$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>";//輸出與下標無關
}
foreach($user as $key=>$val)//$val $key 都是自定義變量
{
echo $key."=====>".$val."<br>";
}
//foreach遍歷多維數組
$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', '[email protected]'),
array(2, '120', '[email protected]'),
array(3, '119', '[email protected]')
)
);
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 ) 默認是第一個元素的值
print_r($a);
$b=each($user);
print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 每執行一次,向後遍歷一個
$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) 當沒有元素時,返回的值
//each()配合while遍歷
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while($arr=each($user))
{
//echo $arr[0]."====>".$arr[1]."<br>";//通過0,1 來顯示 鍵(下標) 和 值
echo $arr["key"]."===>".$arr["value"]."<br>";//通過key,value 來顯示 鍵 值
}

//list()函數的使用
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>";//只把性別轉換為變量
//ip判斷
$ip="192.168.1.128";
list(,,,$d)=explode(".",$ip);//explode表示用 . 來分隔,並返回一個數組
echo $d;//取出128
//list()只能接收索引數組的例子
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) 按照索引下標的順序給list中的參數賦值,所以先是 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>";
}

//多次循環只顯示一次的解決方法
//使用數組的內部指針控制函數
//next(數組);數組指針移動到下一個
//prev(數組);數組指針移動到上一個
//reset(數組);數組指針移動到第一個(復位)
//end(數組);數組指針移動到最後一個
//current(數組);獲取當前元素的值,當前元素時指數組指針指向的元素。
//key(數組);獲取當前元素的鍵值(下標)
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while(list($key,$value)=each($user))
{
echo $key."--->".$value."<br>";
}
//在這裡將數組指針移動到第一個以下循環就能輸出
//reset($user)
while(list($key,$value)=each($user))//因為each()到最後一個返回false,所以循環直接跳出
{
echo $key."--->".$value."<br>";
}
while(list($key,$value)=each($user))//因為each()到最後一個返回false,所以循環直接跳出
{
echo $key."--->".$value."<br>";
}
echo current($user)."=====>".key($user);

?>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved