欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP常用自定义处理函数

程序员文章站 2024-03-14 13:59:22
...

1.多维数组按照某一相同元素累加另一个元素值

    /**
     * @param $arr 多维数组结构相同
     * @param $index 唯一建
     * @param $value 要累加的值key
     * @return array
     */
    function my_merge($arr,$index,$value)
    {
        $newArr = [];
        foreach($arr as $v){
            foreach($v as $key=>$val){
                if(isset($newArr[$val[$index]])){
                    $newArr[$val[$index]][$value]+=$val[$value];
                }else{
                    $newArr[$val[$index]] = $val;
                }
            }
        }
        return array_values($newArr);
    }

2.二维数组按照某个元素排序

    /**
     * @param array $data 要排序的数组
     * @param $field 要排序的字段
     * @param string $rule 排序规则
     * @return mixed
     */
    function my_sort($data,$field,$rule="ASC"){
        switch ($rule) {
            case 'DESC':
                $last_names = array_column($data,$field);
                array_multisort($last_names,SORT_DESC,$data);
                break;
            case 'ASC':
                $last_names = array_column($data,$field);
                array_multisort($last_names,SORT_ASC,$data);
                break;
        }
        return $data;
    }

3.删除二维数组中不需要的字段

   /**
    * 删除二维数组中不需要的字段
    * @param array $arr 要处理的数组
    * @param array $field 需要删除的字段
    * @return mixed
    */
   function delete_field($arr=[],$field=[]){
       foreach ($arr as $key => $val){
           $keys = array_keys($val);
           foreach ($field as $i => $j){
               if (in_array($j,$keys)){
                   unset($arr[$key][$j]);
               }
           }
       }
       sort($arr);
       return $arr;
   }

 

相关标签: PHP学习整理笔记