【tp5】索引数组转成关联数组 ( $a=[],转换成 $a['aa'=>2,'bb'=>'3c'] )
概念:
索引数组 ==== 》》》$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】