Задать вопрос
@mumus

Как найти разницу между соседними элементами массива?

Есть ассоциативный массив.
Надо вычислить разницу между соседними элементами массива, причем разницу перезаписать в текущую ячейку. Нужно как бы на каждом последующем шаге брать из предыдущего значение и вычитать разницу и записывать в текущий шаг, притом, что нужно сохранить текущее значение до изменения, чтобы можно было разницу в следующем шаге сделать и так до конца. Первый элемент не считаем.

8e35f57a6d0b47b7a5b785c3a8da760f.jpg
  • Вопрос задан
  • 411 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя Сергей Собко К ответам на вопрос (2)
<?php
$a = array(
    array(
        "year" => 0,
        "serial" => 0
    ),
    array(
        "year" => 0,
        "serial" => 13000
    ),
    array(
        "year" => 0,
        "serial" => 13640
    ),
    array(
        "year" => 0,
        "serial" => 14280
    )
);

$prev = $a[0]['serial'];

for($i = 1; $i < count($a); $i++) {

    $diff = $a[$i]['serial'] - $prev;
    $prev = $a[$i]['serial'];
    $a[$i]['serial'] = $diff;
}
print_r($a);

Результат
Array
(
    [0] => Array
        (
            [year] => 0
            [serial] => 0
        )

    [1] => Array
        (
            [year] => 0
            [serial] => 13000
        )

    [2] => Array
        (
            [year] => 0
            [serial] => 640
        )

    [3] => Array
        (
            [year] => 0
            [serial] => 640
        )

)

Ответ написан
Комментировать