Advent of code 2022/4
Ajax Direct

Answer 76ms

Part 1 : 528 Part 2 : 881
$pairs = $input->lines->map(fn ($pair) =>
    $pair->split(",")->map(fn ($group) => $group->range())
);

// ==================================================
// > PART 1
// ==================================================
$solution_1 = $pairs->filter(fn ($pair) =>
    $pair[0]->remove($pair[1])->empty() || $pair[1]->remove($pair[0])->empty()
)->count();

// ==================================================
// > PART 2
// ==================================================
$solution_2 = $pairs->filter(fn ($pair) =>
    !$pair[0]->keep($pair[1])->empty()
)->count();