Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中添加两个大小相同的向量_Php_Arrays_Function_Vector - Fatal编程技术网

如何在php中添加两个大小相同的向量

如何在php中添加两个大小相同的向量,php,arrays,function,vector,Php,Arrays,Function,Vector,假设我有以下代码: <?php $a = array(0,1,2); $b = array(0,1,2); $c = $a + $b; print_r($c); ?> 它不起作用。显然,我可以通过一个“foreach”循环来添加向量的每个对应元素,但我想知道是否有一个预定义的函数来防止硬编码。我想你可以使用数组映射来实现这一点 差不多 $a1 = array(4,6,7); $a2 = array(3,6,1); $a3 = array_map(function($a, $b

假设我有以下代码:

<?php
$a = array(0,1,2);
$b = array(0,1,2);
$c = $a + $b;
print_r($c);
?>


它不起作用。显然,我可以通过一个“foreach”循环来添加向量的每个对应元素,但我想知道是否有一个预定义的函数来防止硬编码。

我想你可以使用
数组映射来实现这一点

差不多

$a1 = array(4,6,7);
$a2 = array(3,6,1);
$a3 = array_map(function($a, $b){ return $a + $b;}, $a1, $a2);
它可能不会比直接把它放在一条直线上更有效,但如果你只是想让它看起来漂亮,那么这可能就行了


编辑:这里有一个类似的答案

我在一个项目中需要这个,我需要这个来调用很多次,我只对在向量(一维数组)上添加值感兴趣。与所问问题略有偏差:

/**
 * 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优化器可能也同样快。

可能重复