Удалить первый элемент из массива и реализовать условное вычитание из всех последующих значений массива. ⇐ Php
-
Гость
Удалить первый элемент из массива и реализовать условное вычитание из всех последующих значений массива.
Я пытаюсь разработать функцию для выполнения вычитания при переборе чисел в массиве. Первое число нужно убрать и использовать для вычитания с остальными числами. При выполнении вычитания ни одно значение не должно уменьшаться до отрицательного числа. Кроме того, если встречается новое значение, превышающее сохраняемое значение, сохраняемое значение будет увеличено до суммы большего значения.
Мой текущий код:
функция PairwiseDifference($array) { $n = счетчик ($array) - 1; // сюда можно добавить -1 $дифф = 0; $результат = массив(); для ($i = 0; $i < $n; $i++) { // абсолютная разница между // последовательные числа $diff = abs($array[$i] - $arry[$i + 1]); эхо $diff." "; array_push($результат, $diff); // используем array_push() для добавления новых элементов в массив } вернуть $результат; // возвращаем массив результатов } $массив = [20,10,10,50]; // Процент комиссий составляет: PairwiseDifference ($ массив); Мой код неправильно печатает 10,0,40, и мне нужны следующие значения в качестве вывода: 0,0,30.
Некоторые дополнительные входные данные и желаемые результаты:
$input = [20, 10, 10, 50, 100, 25]; $выход = [0, 0, 30, 50, 0]; $input = [80, 20, 30, 10, 50]; $выход = [0, 0, 0, 0]; $input = [10, 40, 10, 50, 40]; $выход = [30, 0, 10, 0];
Я пытаюсь разработать функцию для выполнения вычитания при переборе чисел в массиве. Первое число нужно убрать и использовать для вычитания с остальными числами. При выполнении вычитания ни одно значение не должно уменьшаться до отрицательного числа. Кроме того, если встречается новое значение, превышающее сохраняемое значение, сохраняемое значение будет увеличено до суммы большего значения.
Мой текущий код:
функция PairwiseDifference($array) { $n = счетчик ($array) - 1; // сюда можно добавить -1 $дифф = 0; $результат = массив(); для ($i = 0; $i < $n; $i++) { // абсолютная разница между // последовательные числа $diff = abs($array[$i] - $arry[$i + 1]); эхо $diff." "; array_push($результат, $diff); // используем array_push() для добавления новых элементов в массив } вернуть $результат; // возвращаем массив результатов } $массив = [20,10,10,50]; // Процент комиссий составляет: PairwiseDifference ($ массив); Мой код неправильно печатает 10,0,40, и мне нужны следующие значения в качестве вывода: 0,0,30.
Некоторые дополнительные входные данные и желаемые результаты:
$input = [20, 10, 10, 50, 100, 25]; $выход = [0, 0, 30, 50, 0]; $input = [80, 20, 30, 10, 50]; $выход = [0, 0, 0, 0]; $input = [10, 40, 10, 50, 40]; $выход = [30, 0, 10, 0];
Мобильная версия