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

1
2
3
4
5
6
7
8
9
10
11
12
13
//检查两个多维数组 是否一直<br>  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;
}<br><br><br>    /**<br>     * 商品信息缓存一致性检查<br>     * @param $productId<br>     * @return bool<br>     */<br>    public function checkProductAttach($productId)<br>    {<br>        $getAttach = $this->productService->getAttach($productId);<br><br>        $getProductAttach = $this->productService->getProductAttach($productId);<br><br>        if($getProductAttach == false){<br>            Yii::$app->dataCache->getRedis()->del(['PRODUCT_ATTACH', $productId]);<br>            return true;<br>        }<br>        $isSame = $this->isSame($getAttach ,$getProductAttach );<br><br>        $arr = [];<br>        $arrCache = $this->foo($getAttach,$arr);<br>        $arrService = $this->foo($getProductAttach,$arr);<br><br>        $result = ['isSame'=>$isSame,'diff'=>array_diff($arrService, $arrCache)];<br><br>        if($isSame==false){<br>            Yii::getLogger()->log(['errorkey' => 'RedisCheckError:'.$productId , 'errorvalue' => json_encode($result['diff'])], Logger::LEVEL_ERROR);<br>        }<br>        return $result;<br>    }

 

posted @   一个人的孤独自白  阅读(435)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示