No to nadal array_chunk, ale tym razem włączając mózg

Skoro zawsze ma być X tablic ale nie wiesz ile elementów ma mieć wejściowa tablica z danymi to:
a) zliczamy ilość elementów tablicy wejściowej -
count,

dzielimy tę liczbę na X i zaokrąglamy w górę -
ceil,
c) wywołujemy
array_chunk z wyliczoną wartością,
d) cieszymy się.
Można to nawet w JEDNEJ linijce zrobić...
Minus: ostatnia tablica może mieć i zapewne będzie miała, mniej elementów niż pozostałe. Ale to już efekt tego, że będziemy w ostatnim elemencie mieć resztę z dzielenia przez zaokrągloną w góre wartość. O ile jeśli ładnie zaokrągli się gdy dzielenie będzie bez reszty tak już dla przypadku choćby 18-elementowa tablica bedziemy mieć:
18/4 = 4.5 ~=5
tablice z kawałkami o długości: 5,5,5,3
Przynajmniej takk zrozumiałem Twój post.
Widzę, że nospor ciutkę szybciej nieco inny pomysł podał. Nie trzeba było otwierać w zakładkach tematu

Jeśli tak to podam jednolinijkowca:
Dla pewności jeszcze tylko dałem rzutowanie na tablicę, ale możesz to sprawdzić przed cięciem.