PHP 多维数组降维

  今天在写业务逻辑的时候碰到一个多维数组需要降维的数组出来 利用foreach 遍历 和array_merge 即可

代码:

        $dict_arr = array();
        foreach ($dict as $row)
        {
            $dict_arr = array_merge($row['children'],$dict_arr);
        }
        $dict_arr=$this->value_to_key($dict_arr,'filed_name','name');

value_to_key(现在可以直接用php自带的函数array_column()):把数组里面的一个键的值作为新数组的键   把数组里面的另外一个键的值做作为新数组的值:

value_to_key(以前发表过一篇自己封装的PHP函数里面有 https://blog.csdn.net/xhzss123/article/details/80655799

方法代码:

function value_to_key($data, $key_name, $key_value = '')
    {
        $result = [];
        foreach ($data as $data_item) {
            if (empty($key_value)) {
                $result[$data_item[$key_name]] = $data_item;
            } else {
                $result[$data_item[$key_name]] = $data_item[$key_value];
            }
        }

        return $result;
    }

最后通过数组匹配key拿值来实现

foreach ($res_value as$ks=> $res2_value)
   {
         foreach ($res2_value as $value_key){
              $dict_key=isset($dict_arr[$value_key])$dict_arr[$value_key]:$value_key;
               $abnormal_yewu[$ks][][$dict_key]=empty($res['day_data'][$tag[$value_key])?0:$res['day_data'][$tag][$value_key];
               }
   }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值