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

时间:2017-06-24 09:25:05

标签: php arrays function vector

假设我有以下代码:

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

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

2 个答案:

答案 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优化器可能同样快。