El código php no importa mucho. Concéntrate en el html generado.
Cosa rara pero la misma w3c trae unos tips:
https://www.w3.org/Style/Examples/007/center.en.html
En general la mejor manera que he encontrado (Y adaptado):
Código CSS:
Ver original.Contenedor {position: relative;}
.Contenedor>img {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
margin: auto;}
Y puedes además ponerle:
Para que no se desborden las imágenes.