我有两个多维数组存储x和y坐标,我试图将它们合并为一个数组,同时保留x值但将y值加在一起。
数组1:
Array(
[0] => Array
(
[x] => 1327449600000
[y] => 5
)
[1] => Array
(
[x] => 1327450500000
[y] => 1
)
数组2:
Array(
[0] => Array
(
[x] => 1327449600000
[y] => 1
)
[1] => Array
(
[x] => 1327450500000
[y] => 3
)
所以综合结果将是:
Array(
[0] => Array
(
[x] => 1327449600000
[y] => 6
)
[1] => Array
(
[x] => 1327450500000
[y] => 4
)
非常感谢任何帮助。
答案 0 :(得分: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;
}
答案 1 :(得分: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;
}