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
)
*/