Don't confuse Java's OO with PHP's. Java is a single paradigm language which means that it only does OO. PHP on the other hand is a multi paradigm language, you can either do functional programming or OO or both.
Now there is no such thing as a "bad" implementation of OO. Java's OO is not a definitive implementation that every other language should or must follow. There are some definitive concepts, and both languages fully implement them in their own way (Java since the beginning, PHP since version 5).
So, to answer your question: What CI does and what you are doing with it is right in the PHP world. PHP's arrays are one of its most flexible and useful structures and it's actually a good thing to use arrays over objects when your data are just information (do not carry logic with them). Fully OO code is not the same thing as "only OO code".
If you are starting with PHP do use Java as a reference for good OO practices but do not limit your understanding of PHP because of the "Java does it differently" thing. You can really screw up in both, the paradigm will not save you if you don't get the concepts.
If in any case you find Java more to your liking (as a personal preference) do check out Ruby for web development, they are a little bit more closely related.