How to multiply every N consecutive items in an array with PHP

1 Answer

0 votes
function products_n_consecutive_items(array $arr, int $n_consecutive_items): array
{
    $products = [];

    if ($n_consecutive_items <= 0 || count($arr) < $n_consecutive_items) {
        return $products; // empty
    }

    $out_size = count($arr) - $n_consecutive_items + 1;

    for ($i = 0; $i < $out_size; $i++) {
        $prod = 1;

        // Multiply arr[i] * arr[i+1] * ... * arr[i+n_consecutive_items-1]
        for ($j = 0; $j < $n_consecutive_items; $j++) {
            $prod *= $arr[$i + $j];
        }

        $products[] = $prod;

        /*
         * Example for n_consecutive_items = 3:
         * 2 * 3 * 4  = 24
         * 3 * 4 * 5  = 60
         * 4 * 5 * 6  = 120
         * 5 * 6 * 7  = 210
         * 6 * 7 * 8  = 336
         * 7 * 8 * 9  = 504
         * 8 * 9 * 10 = 720
         */
    }

    return $products;
}

$arr = [2, 3, 4, 5, 6, 7, 8, 9, 10];
$n = 3;

$products = products_n_consecutive_items($arr, $n);

print_r($products);



/*
run:

Array
(
    [0] => 24
    [1] => 60
    [2] => 120
    [3] => 210
    [4] => 336
    [5] => 504
    [6] => 720
)

*/

 



answered Feb 1 by avibootz

Related questions

...