假设我有这个数组
$number = [2,1,4,3,6,2];
首先将数组中的元素按两个对分配,然后找出它们的区别 所以这是第一个要求中的输出
$diff[] = [1,1,4];
第二次总结所有的差异 这是最终输出
$sum[] = [6];
条件:
到目前为止,我所做的只是计算一个数组的大小然后我不知道如何将它们配对两个。 T_T
这可能在PHP中吗?有内置功能吗?
答案 0 :(得分:3)
一行:
$number = [2,1,4,3,6,2];
$total = array_sum(array_map(function ($array) {
return current($array) - next($array);
}, array_chunk($number, 2)));
echo $total;
答案 1 :(得分:2)
这应该可以正常工作:
<?
$number = array(2,1,4,3,6,2);
for($i=0;$i<count($number); $i+=2){
$dif[] = $number[$i] - $number[$i+1];
}
print_r($dif);
$sum = 0;
foreach ($dif as $item){
$sum += $item;
}
echo 'SUM = '.$sum;
?>
答案 2 :(得分:1)
考虑到你的情况,我来到了以下
$number = [2,1,4,3,6,2];
$total = 0;
for($i = 0; $i < count($number); $i+=2) {
$total += $number[$i] - $number[$i + 1];
}
答案 3 :(得分:1)
如果你想保留所有不同的阶段,
$numbers = [2,1,4,3,6,2];
$diff = [];
for($i=0,$c=count($numbers);$i<$c;$i+=2)
{
$diff[] = $numbers[$i]-$numbers[$i+1];
}
$sum = array_sum($diff);
否则,只需获取总数并绕过diff数组:
$numbers = [2,1,4,3,6,2];
$total = 0;
for($i=0,$c=count($numbers);$i<$c;$i+=2)
{
$total += $numbers[$i]-$numbers[$i+1];
}
答案 4 :(得分:1)
请检查并查看这是否适合您。
<?php
$sum=0;
$number = array(2,1,4,3,6,2);
for ($i=0;$i<=count($number);$i++) {
if ($i%2 == 1 ) {
$sum = $sum + $number[$i-1] - $number[$i];
}
}
print $sum;
?>
答案 5 :(得分:1)
试试这个:
$number = array(2,1,4,3,6,2);
$diff = array();
$v3 = 0;
$i=1;
foreach($number as $val){
if ($i % 2 !== 0) {
$v1 = $val;
}
if ($i % 2 === 0) {
$v2 = $val;
$diff[] = $v1-$v2;
$v3+= $v1-$v2;
}
$i++;
}
print $v3;//total value
print_r($diff); //diff value array
答案 6 :(得分:1)
我已经做到了这一点,它提供了所需的解决方案。
$arr = array(2,1,4,3,6,2);
$temp = 0;
$diff = array();
foreach ($arr as $key => $value) {
if($key % 2 == 0) {
$temp = $value;
}
else {
$diff[] = $temp - $value;
}
}
print_R($diff);
print 'Total :' . array_sum($diff);
注意:如果任何人知道任何预先定义的函数,请更新,而不是可以对此代码进行排序。