【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】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM