Disculpa, no leo tu tema. Solo veo que usas array_unshift() sin parámetros cuando el propio error te pide uno. array_push() te dice que el primer argumento debe ser un array e implode() que están mal los argumentos.
En resumen: haces mal uso de las funciones, consulta la documentación para que veas cómo tienen que usarse.
www.php.net/array_unshift www.php.net/array_push www.php.net/implode