检查两个多维数组 是否一直

    //检查两个多维数组 是否一直  public function foo($arr, &$rt , $key=‘‘ ,$i=0) {
        if (is_array($arr)) {
            foreach ($arr as $k=>$v) {
                if (is_array($v)) {
                    $this->foo($v ,$rt ,$k ,$i);
                } else {
                    $rt[$key.‘->‘.$k.$i] = $v;
                }
                $i++;
            }
        }
        return $rt;
    }

    /**     * 商品信息缓存一致性检查     * @param $productId     * @return bool     */    public function checkProductAttach($productId)    {        $getAttach = $this->productService->getAttach($productId);

        $getProductAttach = $this->productService->getProductAttach($productId);

        if($getProductAttach == false){            Yii::$app->dataCache->getRedis()->del([‘PRODUCT_ATTACH‘, $productId]);            return true;        }        $isSame = $this->isSame($getAttach ,$getProductAttach );

        $arr = [];        $arrCache = $this->foo($getAttach,$arr);        $arrService = $this->foo($getProductAttach,$arr);

        $result = [‘isSame‘=>$isSame,‘diff‘=>array_diff($arrService, $arrCache)];

        if($isSame==false){            Yii::getLogger()->log([‘errorkey‘ => ‘RedisCheckError:‘.$productId , ‘errorvalue‘ => json_encode($result[‘diff‘])], Logger::LEVEL_ERROR);        }        return $result;    }
时间: 2024-12-28 14:30:21

检查两个多维数组 是否一直的相关文章

《两个二维数组(矩阵)相乘》

1 //两个二维数组相乘 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define M 2 5 #define N 3 6 //#define P 6 7 void main() 8 { 9 int i,j,k; 10 //二维数组A和B求乘积,积放在数组C中 11 int A[M][N],B[N][M],C[M][M]; 12 //输入二维数组A的元素的值 13 printf("请输入矩阵A的元素:"); 14 fo

PHP 两个多维数组根据某个键的值进行组合排序的几种思路

需求: 有两个多维数组 $arr = [ ['name'=>'dee','age'=>28], ['name'=>'emperor', 'age'=>30], ['name'=>'Lee', 'age'=>32], ['name'=>'Arshavin', 'age'=>33] ]; $arr2 = [ ['name'=>'Ozil', 'age'=>27], ['name'=>'CR7', 'age'=>29], ['name'=&

in查询和两个二维数组的拼接

1.当某个教练查看自己学员的时候,可以通过获取学员身份证号,然后在怎么通过不同的身份证号获取学员的登录名(可用视图实现,userinfo表和studentinfo表进行拼接) 解决: functionarrTostr ($arr)//把二维数组转化为字符串 { foreach ($arr as $v) { $v = join(",",$v); //可以用implode将一维数组转换为用逗号连接的字符串 $temp[] = $v; } $t=""; foreach($

《两个二维数组相加》

1 //两个二维数组相加 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define M 3 5 #define N 4 6 void main() 7 { 8 int i,j; 9 //二位数组A和B求和,和放在数组C中 10 int A[M][N]; 11 int B[M][N]; 12 int C[M][N]; 13 for(i=0;i<M;i++) 14 { 15 for(j=0;j<N;j++) 16 { 17 sca

PHP 合并两个二维数组 array_map 和 array_walk 的区别

  array_map array_walk 函数介绍 为数组的每个元素应用回调函数 使用用户自定义函数对数组中的每个元素做回调处理 版本限制 (PHP 4 >= 4.0.6, PHP 5, PHP 7) (PHP 4, PHP 5, PHP 7) 使用说明 array_map ( callable callback,arrayarr1 [, array $- ] ) array_walk ( array &array,callablefuncname [, mixed $userdata

取出两个二维数组中不重复的数组值方法

1 var arr1=[ 2 [1,2,3,4,5], 3 [1,2,3,4,5], 4 [12,3,4], 5 [6,7,8], 6 [32,2] 7 ]; 8 var arr2=[ 9 [1,2,3,4,5], 10 [6,7,8], 11 [6,7,8], 12 [15,16] 13 ]; 14 console.log(fillterArr(arr1,arr2));// ["12,3,4"] ["15,16"] ["32,2"] 方法: 1

PHP合并 两个二维数组

$a = array( array('id'=>'113','email'=>'[email protected]'), array('id'=>'111','email'=>'[email protected]'), array('id'=>'109','email'=>'[email protected]') ); $b = array( array('user_id'=>'113','count'=>'1'), array('user_id'=>

将二维数组中的行列互换

情景:二维数组可以存储表格数据,还可以根据下标索引加入各种运算,而且图片的关键运算方法也是以二维数组为基础进行矩阵运算的. //创建二维数组 int arr[][] = new int[][]{{1,2,3},{4,5,6},{7,8,9}}; System.out.println("行列互掉前:"); //输出二维数组 printArray(arr); int arr2[][] = new int[arr.length][arr.length]; //调整数组行列数据 for (in

二维数组作为函数参数传递剖析

前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} //以下两种可以忽略行数 f(int daytab[][13]) {...} f(int (*daytab)[13]) {...} 甚至会有人告诉你多维数组作为参数传递可以省略第一维,其他维不能省略.然而你对这种形式并不满意:如果事先限定了二维数组的大小,函数的泛用性就要大打折扣了.因为你真正需要的,