假设我有以下代码:
<?php
$a = array(0,1,2);
$b = array(0,1,2);
$c = $a + $b;
print_r($c);
?>
它不起作用。显然,我可以通过“foreach”循环添加向量的每个对应元素,但我想知道是否有预定义的函数来防止硬编码。
答案 0 :(得分:1)
我认为您可以使用array_map
http://php.net/manual/en/function.array-map.php
类似
$a1 = array(4,6,7);
$a2 = array(3,6,1);
$a3 = array_map(function($a, $b){ return $a + $b;}, $a1, $a2);
它可能不会比直接放置它更有效率,但如果你只是希望它看起来漂亮,那么这可能会做到。
编辑:这是一个类似的答案Best method for sum two arrays
答案 1 :(得分:0)
我在一个项目中需要这个,需要多次调用,而我只想将向量(一维数组)的值添加到另一个向量中。与提出的问题稍有偏差:
/**
* add vector $b to $a
* $param &number[] $a call by reference
* $param number[] $b array to add
*/
function array_add(&$a, $b)
{
for($i=count($a);--$i>=0;)
$a[$i] += $b[$i];
}
但是php优化器可能同样快。