No confunda OO de Java con PHP. Java es un lenguaje de paradigma único, lo que significa que solo hace OO. PHP, por otro lado, es un lenguaje de paradigmas múltiples, puede hacer programación funcional u OO o ambos.
Ahora no existe una implementación "mala" de OO. La OO de Java no es una implementación definitiva que cualquier otro lenguaje debería o debe seguir. Hay algunos conceptos definitivos, y ambos lenguajes los implementan completamente a su manera (Java desde el principio, PHP desde la versión 5).
Entonces, para responder a su pregunta: lo que hace CI y lo que está haciendo con él está en el mundo de PHP. Las matrices de PHP son una de sus estructuras más flexibles y útiles y, en realidad, es bueno usar matrices sobre objetos cuando sus datos son solo información (no lleve lógica con ellos). El código OO completo no es lo mismo que "solo código OO".
Si está comenzando con PHP, use Java como referencia para buenas prácticas de OO, pero no limite su comprensión de PHP debido a lo que dice "Java lo hace de manera diferente". Realmente puedes meter la pata en ambos, el paradigma no te salvará si no entiendes los conceptos.
Si, en cualquier caso, encuentra Java más a su gusto (como preferencia personal), consulte Ruby para el desarrollo web, están un poco más estrechamente relacionados.