Advent of code 2024/1
Ajax Direct

Answer

Part 1 :
Part 2 :
$nums = $input->lines->map(fn ($l) => $l->split("   "));
$a = $nums->column(0)->sort()->values();
$b = $nums->column(1)->sort()->values();

// ==================================================
// > PART 1
// ==================================================
$solution_1 = $a->map(function ($a, $i) use ($b) {
    return abs($a->int - $b[$i]->int);
}, true)->sum();

// ==================================================
// > PART 2
// ==================================================
$occurrences = $b->occurrences();
$solution_2 = $a->map(function ($a) use ($occurrences) {
    return $a->int * ($occurrences[$a->string] ?? 0);
})->sum();