skip to Main Content

I have an array like this:

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

I want to write a loop which can deduct values of an array like below and show it with 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"

my codes are:

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

but I couldn’t get the result I don’t know why. I am fresh in php. Can you help me??

2

Answers


  1. Basically, you want something like this

    <?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 "n"; // or <br/> if you run it in browser
    }
    
    Login or Signup to reply.
  2. Assuming the input array always has an even number of values in it (which I think is the only way this scenario could logically work), then you can simply count how many items are in the array, and then loop through it, taking the nth item and subtracting it from the n+(total / 2)th item.

    $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;
    }
    

    Demo: https://3v4l.org/ictDT

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search