Part 2 : 
                            
                        function solve($calc_fuel) {
    global $input;
    $pos = $input->numbers()->occurrences();
    $fuel = [];
    for ($i = $pos->keys()->min(); $i <= $pos->keys()->max(); $i++) {
        $fuel[$i] = 0;
        foreach ($pos as $p=>$n) {
            $fuel[$i] += $calc_fuel(abs($i - $p)) * $n;
        }
    }
    return set($fuel)->min();
}
// ==================================================
// > SOLUTIONS
// ==================================================
$solution_1 = solve(fn ($f) => $f);
$solution_2 = solve(fn ($f) => $f * ($f + 1) / 2);