E' un pò tutto poco chiaro.
Fai un doppio ciclo, che come ha già fatto notare alkatraz non ha molto senso, e subito dopo esegui una implode? Prima costruisci un array e subito dopo lo "smonti"?

Successivamente controlli che la variabile creata poco sopra non sia vuota e se non lo è esegui un redirect senza passare i dati?
Non è chiaro, almeno per me.