【PHP】二维数组处理

依然范儿特西
2019-01-18 / 0 评论 / 1,623 阅读 / 正在检测是否收录...

封装方法

二维数组去重

/**
     * @param 二维数组去重
     * @param
     * @return 去重后的数组
     */
    function sys_assoc_unique($arr, $key) { 
        $rAr=array(); 
        for($i=0;$i<count($arr);$i++) { 
            if(!isset($rAr[$arr[$i][$key]])) { 
                $rAr[$arr[$i][$key]]=$arr[$i]; 
            } 
        } 
        $arr=array_values($rAr); 
        return $arr;
    } 

二维数组转字符串

 /**
     * @param 二维数组转字符串
     * @param
     * @return 字符串
     */

    function sys_arr2str ($arr){
        foreach ($arr as $v){
            $v = join(",",$v); //可以用implode将一维数组转换为用逗号连接的字符串
            $temp[] = $v;
        }
        $t="";
        foreach($temp as $v){
            $t.=$v.",";
        }
        $t=substr($t,0,-1);
        return $t;
    }

对查询结果集进行排序

  /**
     * 对查询结果集进行排序
     * @access public
     * @param array $list 查询结果
     * @param string $field 排序的字段名
     * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序)
     * @return array
     */
    function sys_list_sort_by($list, $field, $sortby = 'asc')
    {
        if (is_array($list))
        {
            $refer = $resultSet = array();
            foreach ($list as $i => $data)
            {
                $refer[$i] = &$data[$field];
            }
            switch ($sortby)
            {
                case 'asc': // 正向排序
                    asort($refer);
                    break;
                case 'desc': // 逆向排序
                    arsort($refer);
                    break;
                case 'nat': // 自然排序
                    natcasesort($refer);
                    break;
            }
            foreach ($refer as $key => $val)
            {
                $resultSet[] = &$list[$key];
            }
            return $resultSet;
        }
        return false;
    }


0

评论 (0)

取消