【问题标题】:How to deduct specific array "values from another values" in PHP?如何在 PHP 中扣除特定数组“从另一个值中的值”?
【发布时间】:2022-11-07 19:45:22
【问题描述】:

我有一个这样的数组:

$datas = array(54,12,61,98,88,
               92,45,22,13,36);

我想编写一个循环,它可以像下面这样扣除数组的值并用 echo 显示它:

$datas[5]-$datas[0]  for this line the result will be 92-54   "38"
$datas[6]-$datas[1]  for this line the result will be 45-12   "33"
$datas[7]-$datas[2] ...                                       "-39"

我的代码是:

<?php
                    $smonth1= 0;
                    $emonth1=5;
                    for ($i = 5; $i > 0; $i-- ) {
                        $result = array_diff($datas[$emonth1], $datas[$smonth1]);
                        echo (implode ($result))."<br/>" ;
                        $smonth1++ ;
                        $emonth1++;
                    }
?>

但我无法得到结果,我不知道为什么。我对 php 很陌生。你能帮助我吗??

【问题讨论】:

  • php.net/manual/en/function.array-diff.php 甚至不符合您的需求。您是否真的阅读了该功能的手册?
  • 数组是否总是有 10 个项目,或者大小可以变化?
  • for 循环从 5 到 9 怎么样 - 然后你访问索引与循环变量匹配的项目 - 以及索引 = (你的循环变量 - 5) ...的项目?
  • @ADyson。我的代码不是这样的。数组不是这样的。它是“不固定的”,它可以更长或更短。我的问题是如何扣除两个值并显示出来。我多次使用 array_diff 但它没有给我结果。
  • 好吧,再一次,你为什么期望 array_diff 帮助你?它用于比较整个数组,而不是相互减去单个数字。阅读手册。

标签: php arrays


【解决方案1】:

基本上,你想要这样的东西

<?php

$data = [
    54, 12, 61, 98, 88,
    92, 45, 22, 13, 36
];

$offset = 5;

for ($i = 0; $i + $offset < count($data); $i++) {
    echo $data[$i + $offset] - $data[$i];
    echo "
"; // or <br/> if you run it in browser
}

【讨论】:

    【解决方案2】:

    假设输入数组中总是有偶数个值(我认为这是这种情况在逻辑上可行的唯一方法),那么您可以简单地计算数组中有多少项,然后循环遍历它,取 @ 987654322@th 项并将其从n+(total / 2)th 项中减去。

    $data = array(54,12,61,98,88,
                   92,45,22,13,36);
                   
    $halfway = count($data)/ 2;
    
    for ($i = 0; $i < $halfway; $i++)
    {
        $j = $i + $halfway;
        echo $data[$j] - $data[$i].PHP_EOL;
    }
    

    演示:https://3v4l.org/ictDT

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 2015-02-28
      • 2014-03-21
      • 2017-06-20
      • 2013-02-19
      • 1970-01-01
      • 2016-08-25
      相关资源
      最近更新 更多