一、數組概述
1.1 數組是復合類型
1.2 數組中可以存儲任意長度的數據, 也可以存儲任意類型的數據
二、數組的類型
2.1 索引數組: 下標是順序整數作為索引
'; print_r($user); echo ''; ?> 2.2 關聯數組: 下標是字符串作為索引
'; print_r($user); echo ''; $user["name"] = "lisi"; echo $user["name"]; ?>
三、數組的多種聲明方式
3.1 直接為數組元素賦值
a. 如果索引下標不給值,就會從0開始順序索引
b. 如果給出索引下標,下一個就會是從最大的開始增1
c. 如果後面出現前面的下標,如果是賦值就是為前面的元素重新賦值
d. 混合聲明時,索引和關聯不互相影響(不影響索引下標的聲明)
3.2 使用array()函數
a. 默認是索引數組
b. 如果為關聯數組和索引數組指定下標,使用 鍵=>值
c. 多個成員之前使用“,”分割
'; print_r($user1); echo ''; /** Array( [0] => 1 [1] => zhsangsan [2] => 10 [3] => nan [4] => aaa@bbb.com ) */ $user2 = array("id"=>1, "name"=>"zhsangsan", "age"=>10, 100=>"nan", "aaa@bbb.com"); echo '
'; print_r($user2); echo ''; /** Array( [id] => 1 [name] => zhsangsan [age] => 10 [100] => nan [101] => aaa@bbb.com ) */ ?>
重要知識點: 二維數組
array( array(1, "zansan", 10, "nan"), array(2, "lisi", 20, "nv") ) ); echo $info["user"][1][1]; // lisi echo ''; print_r($info); echo ''; /** Array ( [user] => Array ( [0] => Array ( [0] => 1 [1] => zansan [2] => 10 [3] => nan ) [1] => Array ( [0] => 2 [1] => lisi [2] => 20 [3] => nv ) ) ) */ ?>
四、數組的遍歷
4.1 使用for語句循環遍歷(不推薦)
局限性: 數組必須是索引數組, 而且下標必須是連續的 (然而索引數組下標可以不連續, 數組還可能是關聯數組)
"; } /** $user[0]=1 $user[1]=zhasna $user[2]=aaa@bb.com */ ?>
4.2 使用foreach語句循環遍歷(強烈推薦)
循環次數由數組的元素個數決定, 每一次循環都會將數組中的元素分別賦值給後面的變量
"zhasna", "age"=>40, 100=>"nan", "aaa@bb.com"); foreach($user as $key => $val){ // $var 是自定義變量, $key自定義變量 echo $key." =====> ".$val."
"; } /* 0 =====> 1 name =====> zhasna age =====> 40 100 =====> nan 101 =====> aaa@bb.com */ foreach($user as $val){ // 不要key也可以, 直接遍歷$user的值 echo $val."
"; } /* 1 zhasna 40 nan aaa@bb.com */ ?>
4.3 使用while(), list(), each() 組合循環遍歷(不推薦)
each() 函數:
* 需要一個數組作為參數
* 返回來的也是一個數組
* 返回來的數組時0, 1, key, value四個下標, 0和key下標是當前數組元素的鍵, 1和value下標是當前數組元素的值
* 默認當前元素就是第一個元素
* 每執行一次後就會將當前元素向後移動
* 如果已經到了最後還執行這個函數, 則返回false
1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan"); while($arr = each($user)){ // echo $arr[0]."==>".$arr[1]."
"; echo $arr["key"]." ----> ".$arr["value"]."
"; } /** id ----> 1 name ----> zhangsan age ----> 10 sex ----> nan */ ?>
list() 函數:
* list()=array(); 需要將一個數組賦值給這個函數
* 數組中的元素個數要和list()函數中的參數個數相同
* 數組中的每個元素值會賦值給list()函數中的每個參數,list()將每個參數轉為變量
* list()只能接收索引數組
"; echo $age."
"; // list中的值和數組中的值一一對應 echo $sex."
"; // 如果不想給name賦值, 那就寫成list(, $age, $sex) /* zansan 10 nnnnn */ $user1 = array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan"); list($key, $value) = each($user1); // Array ( [1] => 1 [0] => id ) echo $key." --> ".$value; /* id --> 1 */ $user2 = array("id"=>1, "name"=>"zhangsan", "age"=>10, "sex"=>"nan"); while(list($key, $value) = each($user2)){ echo $key." ==> ".$value."
"; } /* name ==> zhangsan age ==> 10 sex ==> nan */ ?>