слияние двухмерных массивов

berkut

Новичок
слияние двухмерных массивов

есть 2 массива:
Код:
array(2) {
  [0]=>
  array(3) {
    ["total"]=>
    string(5) "85971"
    ["date"]=>
    string(8) "03.01.70"
    ["from_rus"]=>
    string(5) "85971"
  }
  [1]=>
  array(3) {
    ["total"]=>
    string(5) "96849"
    ["date"]=>
    string(8) "01.01.70"
    ["from_rus"]=>
    string(5) "96849"
  }
}
и
Код:
array(1) {
  [0]=>
  array(4) {
    ["date"]=>
    string(8) "01.01.70"
    ["paid_visits"]=>
    string(1) "2"
    ["sum"]=>
    string(5) "66.00"
    ["average"]=>
    string(4) "5.00"
  }
}
размерность обоих может совпадать и нет.
Нужно получить массив
Код:
array(2) {
  [0]=>
  array(3) {
    ["total"]=>
    string(5) "85971"
    ["date"]=>
    string(8) "03.01.70"
    ["from_rus"]=>
    string(5) "85971"
  }
  [1]=>
  array(3) {
    ["total"]=>
    string(5) "96849"
    ["date"]=>
    string(8) "01.01.70"
    ["from_rus"]=>
    string(5) "96849"
    ["paid_visits"]=>
    string(1) "2"
    ["sum"]=>
    string(5) "66.00"
    ["average"]=>
    string(4) "5.00"
  }
}
т.е. если в массиве массива b есть 'date' из массива а, то этот эл-ы этого массива добавить к массиву a
 

BABNIK

Новичок
Re: слияние двухмерных массивов

ну, а от нас-то тебе чего, собственно, надо? работай...
 

berkut

Новичок
нужен оптимальное решение. сейчас я делаю так
PHP:
    $visits_cnt = sizeof($visits);
    $stat_cnt = sizeof($stat);
    for ($i1 = 0; $i1 < $visits_cnt; $i1++) {
        for ($i2 = 0; $i2 < $stat_cnt; $i2++) {
            if ($visits[$i1]['date'] == $stat[$i2]['date']) {
                $STAT[] = array_merge($visits[$i1], $stat[$i2]);
                $flag = true;
                break 1;
            }
        }
        if (!$flag)
            $STAT[] = $visits[$i1];
    }
 
Сверху