在数组值中的ID上合并多个dim数组

时间:2019-02-19 10:00:18

标签: php performance array-merge

我从数据库中提取了一个更大的多维数组。

array(43593) {
  [0]=>
  array(4) {
    ["artnum"]=>
    string(5) "0422272221"
    ["ekprice"]=>
    string(5) "52.78"
    ["ekpriceist"]=>
    string(5) "52.78"
    ["lieferantnr"]=>
    string(7) "7000202"
  }
  [1]=>
  array(4) {
    ["artnum"]=>
    string(5) "04233337133333"
    ["ekprice"]=>
    string(5) "49.45"
    ["ekpriceist"]=>
    string(5) "49.45"
    ["lieferantnr"]=>
    string(7) "7000211"
  }

从另一个数据库服务器中拉出该数组

array(73287) {
  [0]=>
  array(2) {
    ["ARTNUM"]=>
    string(5) "0422272221"
    ["QUALITAETSMERKMAL"]=>
    string(1) "p"
  }
  [1]=>
  array(2) {
    ["ARTNUM"]=>
    string(5) "04233337133333"
    ["QUALITAETSMERKMAL"]=>
    string(1) "m"
  }

当我从用户界面执行以下操作

foreach($aStockArticles as $aStockArticle) {

                foreach($aArticleStamm as $artikel)
                        {           
                            if($aStockArticle['artnum'] == $artikel['artnum'])
                            {
                                $aStockArticle['quality']  = $artikel['QUALITAETSMERKMAL'];
                            }
                        }   }

我收到

  

[第451行] [代码] [消息最大执行时间为30秒   超过]

如您所见,商品的数量和订购的顺序可以彼此不同。

由于我没有访问环境变量 我通常会在db查询中进行简单的联接,但是在这种情况下,由于有两个db服务器,因此不可能实现。

问题: 如何在ID(artnum)上合并这些数组?

所以看起来像这样,并保持在执行时间内?

array(43593) {
  [0]=>
  array(4) {
    ["artnum"]=>
    string(5) "0422272221"
    ["ekprice"]=>
    string(5) "52.78"
    ["ekpriceist"]=>
    string(5) "52.78"
    ["lieferantnr"]=>
    string(7) "7000202"
    ["QUALITAETSMERKMAL"]=>
    string(1) "p"
  }
  [1]=>
  array(4) {
    ["artnum"]=>
    string(5) "04233337133333"
    ["ekprice"]=>
    string(5) "49.45"
    ["ekpriceist"]=>
    string(5) "49.45"
    ["lieferantnr"]=>
    string(7) "7000211"
    ["QUALITAETSMERKMAL"]=>
    string(1) "m"
  }

0 个答案:

没有答案