From the docs:
Arrays and objects can not be used as keys. Doing so will result in a warning: Illegal offset type.
You could give each instance a unique ID or override __toString() such that it returns something unique and do e.g.
$array[(string) $instance] = 42;