笨鳥學php(六) 數組
一、數組概述
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]; // lisiecho '';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 =====> 1name =====> zhasnaage =====> 40100 =====> nan101 =====> aaa@bb.com */ foreach($user as $val){ // 不要key也可以, 直接遍曆$user的值 echo $val."
"; } /* 1 zhasna40nanaaa@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 ----> 1name ----> zhangsanage ----> 10sex ----> nan */?>
list() 函數:
* list()=array(); 需要將一個數組賦值給這個函數
* 數組中的元素個數要和list()函數中的參數個數相同
* 數組中的每個元素值會賦值給list()函數中的每個參數,list()將每個參數轉為變數
* list()只能接收索引數組
";echo $age."
"; // list中的值和數組中的值一一對應echo $sex."
"; // 如果不想給name賦值, 那就寫成list(, $age, $sex)/* zansan10nnnnn */ $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 ==> zhangsanage ==> 10sex ==> nan */?>
http://www.bkjia.com/PHPjc/855347.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/855347.htmlTechArticle笨鳥學php(六) 數組 一、數組概述 1.1 數組是複合類型 1.2 數組中可以儲存任意長度的資料, 也可以儲存任意類型的資料 二、數組的類型 2.1...