No standard way comes to mind, all PHP URL query builders work with arrays, which don't allow having multiple identical keys. This makes sense for me, and I'd call this API realization wrong and bad.
There is always a dirty way, construct a query by yourself and strip out brackets and sequential numbers:
$data = [
'person.id' => [1, 2, 3],
'limit' => 100,
];
$query_string = Str::of(http_build_query($data))
->replaceMatches('/%5B[0-9]+%5D/', '')
->toString();
Http::get('https://api.personio.de/v2/attendance-periods', $query_string);
// request goes to: https://api.personio.de/v2/attendance-periods?person.id=1&person.id=2&person.id=3&limit=100