如果您已经有两个单独的数组作为数据,那么首先合并它们将是一种浪费时间和资源的做法,我想。
PHP中有两种形式的数组访问,迭代访问使用内部指针,按顺序访问,通过关联键/索引访问则是哈希映射而非顺序。如果您要查看数组的所有元素,并且可能按顺序这样做,则尝试使用内置array_函数或迭代器函数reset()、next()、cur()、end()、each()进行迭代访问。
请查看PHP中
array_reduce()函数,它可以帮助您快速实现这种类型的操作。虽然在这个简单的案例中,您最好使用一个for()循环直接使用数组迭代器函数reset()、next()、cur()来获取每个数组中的值 - 或者如果它们被标识为相同的,则可以执行foreach()并使用一个数组的键来处理另一个数组。
$sum_x = array_reduce($x, create_function('$x1,$x2', 'return $x1 + $x2;'), 0);
$sum_y = array_reduce($y, create_function('$y1,$y2', 'return $y1 + $y2;'), 0);
$sum_x2 = array_reduce($x, create_function('$x1,$x2', 'return $x1 + $x2 * $x2;'), 0);
$sum_y2 = array_reduce($y, create_function('$y1,$y2', 'return $y1 + $y2 * $y2;'), 0);
或者
$sum_x = 0;
$sum_y = 0;
$sum_x2 = 0;
$sum_y2 = 0;
foreach (array_keys($x) as $i) {
$sum_x += $x[$i];
$sum_y += $y[$i];
$sum_x2 += $x[$i] * $x[$i];
$sum_y2 += $y[$i] * $y[$i];
}