php常用数组相关处理函数(1)

一。数组键/值操作有关的函数
      1.array_values()//返回数组下标默认为索引的
       
       $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
       $arr=array_values($lamp);
       list($os,$wb,$db,$lang)=$arr; 
       echo $os.'<br>';
       echo $wb.'<br>';
       echo $db.'<br>';
       echo $lang.'<br>';
      
       echo'<pre>';
       print_r($arr);
       echo '</pre>';
       
       2.array_keys()返回数组中数字或字符串的键名
       $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
       $arr=array_keys($lamp,"Mysql",true);//三个参数,后两个可选,第二个是制定数组哪个参数,第三个要求第二个的参数与数组参数完全吻合
       list($os,$wb,$db,$lang)=$arr; 
       echo $os.'<br>';
       echo $wb.'<br>';
       echo $db.'<br>';
       echo $lang.'<br>';
      
       echo'<pre>';
       print_r($arr);
       echo '</pre>';
       
       3.in_array("a",$b,c)//搜索b中有没有a
        $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
        if(in_array("linux",$lamp,true)){
              echo "exit";
        } 
        else{
              echo "not exit";
        }
       
        4.array_key_exists("a",$b)
        $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
        if(array_key_exists("os",$lamp)){
              echo "exit";
        } 
        else{
              echo "not exit";
        }
    
        5.array_flip(数组)//交换数组中的键和值
        $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql");
        array_flip($lamp);
        echo '<pre>';
        print_r($lamp);
        echo'</pre>';//如果转换后的数组键值有重复,则后面的覆盖前面的
       
        6.array_reserve()//返回一个单元顺序相反的数组
 
二。统计数组元素的个数和唯一性的
    1.count($a,b) //b可选,b的值为0或1,0表示不递归统计数组元素个数,1表示统计
     sizeof();//统计
   
     $lamp=array("os"=>"linux","webserver"=>"Apache","db"=>"Mysql",array(1,2,3));
      echo count($lamp,1);
   
     2.array_count_values()//统计数组中所有的值出现的次数,返回一个数组,原数组的值作为键名,出现的次数作为值
     $user=array(1,2,1,2,3);
     print_r(array_count_values($user)); 
 
     3.array_unique//移除数组中重复的值
     $user=array(1,2,1,2,3);
     print_r(array_unique($user));
      
三。使用回调函数处理数组的函数 
     1.array_filter()//使用回调函数过滤数组中的值
       $arr=array(1,2,3,4,5,6,-2,-4);
       $arr1=array_filter($arr,"myfun");
        function myfun($n){
               if($n>0){
                    return true;
               }
               else{
                    return false;
               }
        }
        echo '<pre>';
        print_r($arr1);
        echo '</pre>';
  
     2.array_walk()//数组中的每个成员应用用户函数
       $lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
       array_walk($lamp,"myfun1");
       function myfun1($value,$key){
           echo "the key'{$key}' has the value '$value' <br>";
         }
        //还可以有第三个参数,这个参数用于传到function中
        $lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
       array_walk($lamp,"myfun1","===");
       function myfun1($value,$key,$p){
           echo "the key'{$key}' has '{$p}the value '$value' <br>";
         }
      //还可以用传引用的方式,使原数组发生变化
      $lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
       array_walk($lamp,"myfun1");
       function myfun1(&$value,$key,$p){
           $value="web";
         }
       echo '<pre>';
       print_r($lamp);
       echo '</pre>';
 
     3.array_map()//将回调函数作用在指定的数组单元中
      $lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
      $arr=array_map("myfun",$lamp);
      function myfun($n){
          return "==".$n."==";
      }
     //后面的参数可以再加数组,但数组中的元素要和原数组相同
      $lamp=array("os"=>"linux","wb"=>"apache","db"=>"mysql");
      $lp=array("os"=>"windows","wb"=>"iis","db"=>"sql");
      $arr=array_map("myfun",$lamp,$lp);
      function myfun($n,$t){
           if($n==$t){
                 return "same";
           }
           else{
                 return "different";
           }
      }
       print_r($arr);
 
posted @ 2014-02-10 17:23  mengblog  阅读(1359)  评论(0编辑  收藏  举报