PHP中如何循环实现数组指定位置元素的对应减法运算?
问题解决:PHP数组元素配对减法运算
给定数组:
$datas = array(54,12,61,98,88, 92,45,22,13,36);
需要实现后5个元素依次减去前5个对应位置元素的运算,输出结果如下:
- 92-54 = 38
- 45-12 = 33
- 22-61 = -39
- 13-98 = -85
- 36-88 = -52
原代码的问题
- 误用
array_diff()函数:这个函数的作用是计算两个数组的差集(返回在第一个数组中但不在第二个数组的元素),完全不适合做单个数值的减法运算,你需要的直接用减号-完成数值相减。 - 循环逻辑冗余:原循环的
$i变量仅用于控制循环次数,没有关联数组下标,换成直接关联下标的循环逻辑会更清晰。
修正后的代码
<?php $datas = array(54,12,61,98,88, 92,45,22,13,36); // 循环5次,对应前5个与后5个元素的配对 for ($i = 0; $i < 5; $i++) { // 后段元素下标为i+5,前段为i,直接做减法 $result = $datas[$i + 5] - $datas[$i]; // 输出计算过程和结果,也可只输出$result echo "{$datas[$i+5]}-{$datas[$i]} = {$result}<br/>"; } ?>
代码说明
- 循环变量
$i从0到4,刚好对应前5个元素的下标(0-4),后5个元素的下标为$i+5(5-9),实现精准配对。 - 用直接的数值减法
$datas[$i+5] - $datas[$i]得到结果,无需多余的数组函数。 - 字符串插值
{$变量}可以直接将变量值嵌入字符串,让输出的计算过程更直观。
内容的提问来源于stack exchange,提问作者Va SA
相关产品推荐
相关产品推荐

