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

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

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

时间: 2024-11-09 04:27:24

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

ES6将两个数组合并成一个对象数组

需求 有这么两个数组 1 let metrodates = [ 2 "2008-01", 3 "2008-02", 4 "2008-03",..ect 5 ]; 6 let figures = [ 7 0, 8 0.555, 9 0.293,..ect 10 ] 想要这样的结果 1 let result = [ 2 {data: 0, date: "2008-01"}, 3 {data: 0.555, date: "

php将对象数组转成普通数组

最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组.然而需要一个个属性取出来放到数组里面然后再利用ThinkPHP的addAll或者add方法写入数据库.然而每次返回的字段有几十个,每次这么拼接都要崩溃了.果然还是那句话,当你感到无法忍受的时候你就会想办法改变.于是想了下,如果有个函数传个对象数组进去可以自动转成普通数组就好了.因而万能的互联网搜索又来了.百度了一通...果然有前辈已经处理过了,在此记录一下. /** * [std_class_obje

Java数组分隔成子数组

有这样一个需求,循环数组输出动态表单为一行两列 分隔数组每两个为一组,如果单数最后一个为一组 import java.util.ArrayList; import java.util.List; public class SplitArray { public static void main(String[] args) { String ary[] = { "a", "b", "c", "d", "e"

大数组分页成小数组

public static void mod() { //源数组 int x[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14}; //每组多少个 int len = 5 ; //数组数量 int y = x.length; int left = y%len ; int size = left==0?y/len:y/len+1; //当前页码 int index = 1 ; for(int i=1;i<=size;i++) { //新数组 数量 int tempsize

PHP 将二维数组转成一维数组

$authArrs = array();  //待转的数组 $authIds = array(); //声明一个空数组 array_walk_recursive($authArrs, function($value) use (&$authIds) { array_push($authIds, $value); }); 原文地址:https://www.cnblogs.com/soiq-1123/p/9450993.html

js 多维数组转成一维数组

1 var arr = [1, 2, [3, 4, [5, 6, 7]]]; 2 var resultArr = []; 3 function forEachArr(arr) { 4 for (var i = 0; i < arr.length; i++) { 5 if (arr[i] instanceof Array) { 6 arguments.callee(arr[i]); 7 // forEachArr(arr[i]); 8 } else { 9 resultArr.push(arr[i

JS 索引数组、关联数组和静态数组、动态数组

1 JS 索引数组.关联数组和静态数组.动态数组 2 3 数组分类: 4 5 1.从数组的下标分为索引数组.关联数组 6 7 var ary1 = [1,3,5,8]; 8 //按索引去取数组元素,从0开始(当然某些语言实现从1开始) 9 //索引实际上就是序数,一个整型数字 10 alert(ary1[0]); 11 alert(ary1[1]); 12 alert(ary1[2]); 13 alert(ary1[3]); 14 15 16 var ary2 = {}; 17 //存取时,以非

linux 普通数组和关联数组

数组:就是借助索引将多个数据存储为一个集合. 普通数组:数组的索引只能使用整数 关联数组:数组的索引可以使用整数和字符串(要bash4.0以上的版本才支持关联数组) 数组通常与循环或者其他判断式交互使用才有比较高的意义 普通数组的定义 array1=(a  ab 12  3a) 数组的索引从0为起始索引 echo ${array1[0]}      输出:a echo ${array1[2]}      输出:12 数组还可以定义成 arry[0]="test0" arry[1]=&q

【Linux】数组与关联数组

数组 数组的定义: variable=(arg1 arg2 arg3 -) 中间用空格分开,数组的下标从0开始 1.获取下标为n的元素 variable[n] 不存在数组溢出的情况,如果下标n>=数组长度,那么为空,不会报错. [[email protected] test]# var=(1 2 3) [[email protected] test]# echo ${var[0]} 1 2.获取数组长度 ${#var[@]}或者${#var[*]} [[email protected] test