比较多维数组的参数并合并它们

我有 2 个多维数组 ( $sorted$sorted_Rcv),参数为AccountAnalyzed,Received和. 并且在不同的数组中,如下图所示。YearMonthReceivedAnalyzed

http://img2.mukewang.com/636f34a100014efc03650600.jpg

我想要实现的是比较 2 个数组,如果Account,Month和Year相同,则合并它们,以便在一个对象中得到Account, Received, Analyzed,Month和Year。


这是我目前的做法。我在哪里得到以下错误: Trying to access array offset on value of type int在 if 函数上。


$merged_result = array();

foreach ($sorted as $sorted) {

    foreach ($sorted as $value1) {

      foreach ($sorted_Rcv as $sorted_Rcv) {

            foreach ($sorted_Rcv as $value2) {

                if ($value1['Month'] == $value2['Month'] && $value1['Year'] == $value2['Year']) {

                    $merged_result[]= ['Account' => $value1['Account'], 'Received' => $value2['Received'],'Analyzed' => $value1['Analyzed'],'Month' => $value1['Month'],'Year' => $value1['Year']];

              }

            }

          }

        }

      }

非常感谢任何形式的帮助!



慕姐8265434
浏览 78回答 1
1回答

aluckdog

尝试使用下一个foreach循环:$merged_result = array(); foreach($sorted as $subar1){foreach($subar1 as $val){    foreach($sorted_Rcv as $subar2){     foreach($subar2  as $val2){        if ($val['Year'] == $val2['Year'] && $val['Month'] == $val2['Month'] && $val['Account'] == $val2['Account']){            $merged_result[] = [                                'Year' => $val2['Year'],                                'Month' => $val2['Month'],                                'Account' => $val2['Account'],                                'Analyzed' => $val['Analyzed'],                                'Received' => $val2['Received'],            ];        }       }    }}}
打开App,查看更多内容
随时随地看视频慕课网APP