PHP-數組小記(一)
阿新 • • 發佈:2018-01-20
第一個 [1] ear eset key reac arch blog 好的
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>";//都輸出id 12 13 /*可以用prev()和next()函數將指針像前移或向後移*/ 14 next($a); 15 echo current($a);//輸出mike 16 echo key($a);//輸出name 17 18 prev($a); 19 echo current($a);//輸出1 20 echo key($a);//輸出id 21 22 /*end()直接將指針只想最後一個,reset()將指針重置到第一個*/ 23 end($a);echo current($a);//New York 24 reset($a);echo current($a);//1 25 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;//18 10 echo $address;//New York 11 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);//1 11 ?>
PHP-數組小記(一)