PHP-数组小记(一)

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 ?>

 

posted @ 2018-01-20 07:40  帕特菛琦  阅读(151)  评论(0编辑  收藏  举报