標籤:function 匹配 ddr 變數賦值 使用數組 為什麼 exist als pos
1.each()
1 <?php 2 /*each()函數取出數組當前 索引值對 以 數組 形式返回,並將指標向下移動*/ 3 $a=array(‘id‘=>1,‘name‘=>‘mike‘,‘age‘=>18,‘address‘=>‘New York‘); 4 5 var_dump(each($a));echo "<br>"; 6 var_dump(each($a));echo "<br>"; 7 var_dump(each($a));echo "<br>"; 8 var_dump(each($a));echo "<br>"; 9 var_dump(each($a));echo "<br>";10 ?>
2.數組的指標
1 <?php 2 /*current()和key()函數分別取得數組當前的值和鍵,卻不移動指標*/ 3 $a=array(‘id‘=>1,‘name‘=>‘mike‘,‘age‘=>18,‘address‘=>‘New York‘); 4 5 var_dump(current($a));echo "<br>"; 6 var_dump(current($a));echo "<br>"; 7 var_dump(current($a));echo "<br>";//都輸出1 8 9 var_dump(key($a));echo "<br>";10 var_dump(key($a));echo "<br>";11 var_dump(key($a));echo "<br>";//都輸出id12 13 /*可以用prev()和next()函數將指標像前移或向後移*/14 next($a);15 echo current($a);//輸出mike16 echo key($a);//輸出name17 18 prev($a);19 echo current($a);//輸出120 echo key($a);//輸出id21 22 /*end()直接將指標只想最後一個,reset()將指標重設到第一個*/23 end($a);echo current($a);//New York24 reset($a);echo current($a);//125 26 /*用指標寫一個遍曆數組的函數*/27 function arraylist($a)28 {29 while($value=current($a))30 {31 $key=key($a);32 echo $key.‘=>‘.$value.‘,‘;33 next($a);34 }35 reset($a);36 }37 arraylist($a);38 arraylist($a);39 ?>3.list()
1 <?php 2 /*list()按數組的索引順序為傳入的變數賦值*/ 3 /*賦值的數組必須是索引數組*/ 4 $a=array(1,‘mike‘,18,‘New York‘); 5 list($id,$name,$age,$address)=$a; 6 7 echo $id;//1 8 echo $name;//mike 9 echo $age;//1810 echo $address;//New York11 12 13 /*用list()和each()函數可以遍曆出數組的鍵和值*/14 /*相當於foreach()*/15 while (list($key,$value)=each($a)){} //這裡$a可是是關聯陣列16 ?> 4.array_values()
1 <?php 2 /*array_values()傳入一個數組,返回一個按值的順序重建的索引數組*/ 3 4 /*處理一個順序混亂的索引數組*/ 5 $a=array(0=>‘id‘,5=>‘name‘,4=>‘age‘,2=>‘address‘); 6 var_dump(array_values($a)); 7 8 /*將關聯陣列轉變為索引數組*/ 9 $b=array(‘id‘=>1,‘name‘=>‘mike‘,‘age‘=>18,‘address‘=>‘New York‘);10 var_dump(array_values($b));11 ?>
5.array_keys()和array_search()
1 <?php 2 /*通常我們都是使用數組名加下標或鍵名的方式獲得數組的值 3 但是,如果現在想反過來,像通過數組的值獲得數組的鍵名該怎麼做呢*/ 4 5 $a=array(‘id‘=>1,‘name‘=>‘mike‘,‘age‘=>18,‘address‘=>‘New York‘,‘xingming‘=>‘mike‘); 6 /*將值對應的鍵以數組形式返回,第三個參數致命為嚴格匹配,預設為false 7 為什麼要以數組返回呢,因為對應值的鍵可能不止有一個呀*/ 8 var_dump(array_keys($a,‘mike‘,true));//array(2) { [0]=> string(4) "name" [1]=> string(8) "xingming" } 9 10 var_dump(array_keys($a));//為指定值,那麼就將所有的鍵按順序返回11 12 13 14 /*array_search()函數與array_keys()類似,都是輸入值返回鍵名/*15 /*不同的是它們參數的位置不同*/16 /*並且array_search()返回一個鍵名,如果有多個則只返回第一個*/17 var_dump(array_search(‘mike‘,$a,true));// string(4) "name"18 ?>
6.array_key_exists()和in_array()
1 <?php 2 /*array_key_exists()用來判斷數組中是否存在這個鍵*/ 3 $a=array(‘id‘=>1,‘name‘=>‘mike‘,‘age‘=>18,‘address‘=>‘New York‘,‘xingming‘=>‘mike‘); 4 echo array_key_exists(‘name‘,$a);//1 5 6 /*如何判斷一個數組中是否存在一個值呢*/ 7 /*也可以用之前的array_keys()和array_search()*/ 8 /*這裡有更好的方法in_array()*/ 9 10 echo in_array(‘mike‘,$a,true);//111 ?>
PHP-數組小記(一)