Advent of code 2019/1
Ajax Direct

Answer 1ms

Part 1 : 3254441 Part 2 : 4878818
// ==================================================
// > PART 1
// ==================================================
$solution_1 = $input->numbers()->map(fn ($int) => floor($int / 3) - 2)->sum();

// ==================================================
// > PART 2
// ==================================================
function calc_fluel($int, $carry = 0)
{
    $req = max(0, floor($int / 3) - 2);
    $carry += $req;
    return $req <= 0 ? $carry : calc_fluel($req, $carry);
}

$solution_2 = $input->lines->ints()->map("calc_fluel", false)->sum();