*【封装php函数】--处理数组

    /**
     * 合并时用的,二维数组,根据某个Key进行去重
     * @param $arr 要去重的二维数组
     * @param $key 根据哪个key去重
     * @author yzm
     */
    function 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];
            }
        }
        return $arr=array_values($rAr); //不写return,调的时候 就不要赋给 变量
    }

 

效果截图:

 

 

/*
 * 二维数组按指定键值排须
 */
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;
}


效果截图:

 

 

/**
 * 根据第3维数组的key对应的value,找他的上级key(就是第2维的key)
 * @param $datas 三维数组
 * @param $key   要查找的key
 * @param $value 要查找的value
 */
function test($datas,$key,$value){
    foreach ($datas as $k => $v){
        foreach ($v as $kk => $vv){
            if(isset($vv[$key]) == $value){
                return $kk;
            }
//第3维用内置函数不稳,因为如果$vv不是数组的话,会有警告
//            if(array_search('lampol',$vv)){
//                return $kk;
//            }
        }
    }
}

效果图:

 

/**
     * 数据每2条分1个组
     * @param $data  传个二维数组
     * @param $n   以几条记录做区分
     * @param $value   以哪个value(字段名)做区分
     */
    public function arrGrounp($data,$n,$value){
        $grounp = array();
        $total = ceil(count($data)/$n);
        for($k=0;$k<$total;$k++){
            for ($i=0;$i<$total;$i++){
                if (!is_null($data[$i+($k*$n)][$value])) {
                    $grounp[$k][$i] = $data[$i + ($k * $n)][$value];
                }
            }
        }

        return $grounp;
    }

效果图

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值