Вопрос по merge, arrays, php – Слияние 2 многомерных массивов и суммы значений

1

У меня есть два многомерных массива, в которых хранятся координаты x и y, которые я пытаюсь объединить в один массив, сохраняя при этом значение x, но суммируя значения y.

Массив 1:

<code>Array(
[0] => Array
    (
        [x] => 1327449600000
        [y] => 5
    )

[1] => Array
    (
        [x] => 1327450500000
        [y] => 1
    )
</code>

Массив 2:

<code> Array(
[0] => Array
    (
        [x] => 1327449600000
        [y] => 1
    )

[1] => Array
    (
        [x] => 1327450500000
        [y] => 3
    )
</code>

Таким образом, объединенный результат будет:

<code> Array(
[0] => Array
    (
        [x] => 1327449600000
        [y] => 6
    )

[1] => Array
    (
        [x] => 1327450500000
        [y] => 4
    )
</code>

Любая помощь будет принята с благодарностью.

Будут ли все элементы X в массиве 1 доступны в массиве 2? j4kes
Да, они имеют одинаковую длину, и элементы X всегда должны быть одинаковыми, но это не гарантируется. StephenD
Являются ли два массива одинаковой длины? MrCode

Ваш Ответ

2   ответа
0

позвольте им содержать произвольное количество точек (любого измерения):

function addPoints( vectorA, vectorB )
{
  if( vectorA.length != vectorB.length ) return [];
  var vectorC = [];
  for( var i=0; i<vectorA.length; ++i )
  {
    var tmp = [];
    for( var j in vectorA[i] ) tmp.push( vectorA[i][j]+vectorB[i][j] );
    vectorC.push( tmp );
  }
  return vectorC;
}

РЕДАКТИРОВАТЬ:

Я только что понял, что ты пишешь PHP. Дайте мне секунду, чтобы преобразовать код, пожалуйста.

function addPoints( $veca, $vecb )
{
   if( count($veca)!=count($vecb) ) return array();

   $vecc = array();
   for( $i=0; $i<count($veca); ++$i )
   {
      $tmp = array();
      foreach( $veca[$i] as $key => $val ) $tmp[$key] = $val + $vecb[$i][$key];
      $vecc[] = $tmp;
   }
   return $vecc;
}
Error: User Rate Limit Exceeded StephenD
0
function add_array($a1, $a2) {
    $c = count($a1);
    for ($i=0;$i<$c;$i++) {
        if (isset($a2[$i]) && isset($a2[$i]['y'])) {
            $a1[$i]['y'] += $a2[$i]['y'];
        }
    }
    return $a1;
}
Error: User Rate Limit Exceeded

Похожие вопросы