1. 程式人生 > >PHP-數組小記(一)

PHP-數組小記(一)

第一個 [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-數組小記(一)