I think they're about equivalent.
There's the overhead of having a class, but that's a one off cost that's amortised over all instances.
The internal representation of an object has an extra field to specify which class it's an instance of, but that's just a pointer.
Both entities don't store any data themselves, but just consist of lists of pointers to where the data is stored.
Arrays and objects are trivially cast into each other (casting an array into an object results in an object of type stdClass).
Arrays are arbitrarily resizable (to do the same thing with an object (without using any arrays) is an exercise in obfuscation).
Short answer; horses for courses.