概念:
索引數組 ==== 》》》$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】
