码迷,mamicode.com
首页 > 编程语言 > 详细

【tp5】索引数组转成关联数组 ( $a=[],转换成 $a['aa'=>2,'bb'=>'3c'] )

时间:2018-08-17 13:58:27      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:通过   orange   很多   ora   报错   class   range   back   tp3.2   

概念:

索引数组 ==== 》》》$arr = [];

关联数组 ====》》》 $arr = [ ‘orange‘=>1,‘apple‘=>‘good‘  ];

 

1、在tp5之前的tp3.2,我们知道索引数组转关联数组,是直接可以转成功的,因为php是弱语言类型。

2、在tp5之后,索引数组不能直接转关联数组,必要通过isset进行判断,然后才能给转成关联数组。

     否则,tp5会报错:

未定义数组索引: aa

如何避免这个错误呢?

可以isset进行判断【‘aa’】下标是否存在,不存在,则进行赋值;存在则直接赋值。

demo:

if(!empty($erp_today_pay_arr)){
                        $a = [];    //用于存放支付方式和金额的一维数组,key是支付方式
                        foreach($erp_today_pay_arr as $v){
                            $one_p_t_arr = [];
                            $one_p_t_arr = explode(‘+‘, $v[‘Money_Paytype‘]);
                            foreach($erp_pay_type_arr as $v2){
                                foreach($one_p_t_arr as $v3){
                                    $c=‘‘;
                                    $c=substr($v3,0,strrpos($v3,‘(‘));  //淘宝支付宝、支付宝、微信支付等
                                    if( $c == $v2 ){
                                        $b=‘‘;
                                        $b=substr(trim($v3,‘)‘),strrpos(trim($v3,‘)‘),‘(‘)+1);
                                        if(!isset($a[$v2])){
                                            $a[$v2] = ‘‘;
                                            $a[$v2]+=$b;
                                            $a[$v2] = number_format($a[$v2],2,‘.‘,‘‘);
                                        }else{
                                            $a[$v2]+=$b;
                                            $a[$v2] = number_format($a[$v2],2,‘.‘,‘‘);
                                        }
                                    }
                                }
                            }
                        }
                    }

 

上面$a 刚开始我们定义成索引数组a,然后通过isset进行转换成 关联数组,里面包含了很多的下标【$v2】。

如果不使用isset,直接进行$a[$v2],会报错:【未定义数组索引: aa】

 

【tp5】索引数组转成关联数组 ( $a=[],转换成 $a['aa'=>2,'bb'=>'3c'] )

标签:通过   orange   很多   ora   报错   class   range   back   tp3.2   

原文地址:https://www.cnblogs.com/xuzhengzong/p/9492744.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!