PHP 数组相关处理方法

PHP / 203人浏览 / 0人评论
 //对多维数组按照某个字段进行排序
public function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序
  $arr_nums=$arr=array();
  foreach($array as $k=>$v){
   $arr_nums[$k]=$v[$key];
  }
   
  if($order=='asc'){
   asort($arr_nums);
  }else{
   arsort($arr_nums);
  }
 
  foreach($arr_nums as $k=>$v){
   $arr[$k]=$array[$k];
  }
  return $arr;
 }

----------

//array_pad函数,数组数组首尾选择性追加$num = array(1=>10,2=>20,3=>30);
    $num = array_pad($num,4,40);
    print_r($num);//Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 )$num = array_pad($num,-5,50);//array_pad(array,size,value)
    print_r($num);//Array ( [0] => 50 [1] => 10 [2] => 20 [3] => 30 [4] => 40 ) 
size:指定的长度。整数则填补到右侧,负数则填补到左侧。

----------

array_splice()删除数组成员 :
$color = array("red", "green", "blue", "yellow");
    count ($color); //得到4
    array_splice($color,1,1); //删除第二个元素
    print_r(count ($color)); //3echo$color[2]; //yellowecho$color[1]; //blue

----------

//sizeof的使用echo sizeof($array);//7;统计数组元素的个数//array_count_values$num = array(10,20,30,10,20,1,0,10);//统计数组元素出现的次数
    print_r(array_count_values($num));//Array ( [10] => 3 [20] => 2 [30] => 1 [1] => 1 [0] => 1 ) 
//current():每个数组都有一个内部指针指向他的当前单元,初始指向插入到数组中的第一个元素

----------


        /**
         * 把对象转换成数组
         * @param   object  $object 要转换的对象
         * @return  array
         */
        public function objectArray($object) {
            if( count($object)==0 )  return trim((string)$object);
            $result = array();
            $object = is_object($object) ? get_object_vars($object) : $object;
            foreach ($object as $key => $val) {
                $val = (is_object($val) || is_array($val)) ? $this -> objectArray($val) : $val;
                $result[$key] = $val;
            }
            return $result;
        }

----------


    //数组处理 ,把二位数组处理成为一维数组
    public function array_multi2single($array){
        static $result_array=array();
        foreach($array as $k => $value){
            if(is_array($value)){
                $this -> array_multi2single($value);
            }else{
                $result_array[$k]=$value;
            }
        }
        return $result_array;
    }


----------


    /**
     * 从数组中删除空白的元素
     * @param  $arr 
     * @param  boolean $trim
     * 
     */
    function array_remove_empty(&$arr, $trim = true)     
    {     
        foreach ($arr as $key => $value) {     
            if (is_array($value)) {     
                array_remove_empty($arr[$key]);     
            } else {     
                $value = trim($value);     
                if ($value == '') {     
                    unset($arr[$key]);     
                } elseif ($trim) {     
                    $arr[$key] = $value;     
                }    
            }     
        }     
    } 

0 条评论

还没有人发表评论

发表评论 取消回复