Mi sembra ottimo ( anche se il mio è più rapido e meno macchinoso per il server )

Scherzi a parte sembra proprio quello che serve a te.

A pensarci bene a te cambia poco. Se usi il mio metodo puoi dividere tutte le categorie in varie select in base alla loro posizione nell'array (quello dell'explode) e creare altre categorie unendo le varie opzioni delle select.

A me piace complicarmi la vita pur di creare un metodo tutto mio
Sai quante fasciate alla testa?