Non confondere l'OO di Java con PHP. Java è un singolo linguaggio di paradigma che significa che fa solo OO. Il PHP d'altra parte è un linguaggio multi-paradigma, è possibile eseguire sia la programmazione funzionale o OO o entrambi.
Ora non esiste un'implementazione "cattiva" di OO. L'OO di Java non è un'implementazione definitiva che ogni altra lingua dovrebbe o deve seguire. Ci sono alcuni concetti definitivi e entrambi i linguaggi li implementano completamente a modo loro (Java dall'inizio, PHP dalla versione 5).
Quindi, per rispondere alla tua domanda: cosa CI fa e cosa stai facendo è giusto nel mondo PHP. Gli array di PHP sono una delle sue strutture più flessibili e utili e in realtà è una buona cosa usare gli array sugli oggetti quando i dati sono solo informazioni (non portare la logica con loro). Completamente il codice OO non è la stessa cosa di "solo codice OO".
Se stai iniziando con PHP, usa Java come riferimento per le buone pratiche OO, ma non limitare la tua comprensione di PHP a causa della cosa "Java lo fa diversamente". Puoi davvero rovinare entrambi, il paradigma non ti salverà se non ottieni i concetti.
Se in ogni caso trovi Java più di tuo gradimento (come preferenza personale) controlla Ruby per lo sviluppo web, sono un po 'più strettamente correlati.