I have always deleted objects from an array with unset():
unset($arr['theKey']);
... thereby assuming that if no other references where held to the object in $arr['theKey'] the garbage collector would delete the object.
I took over a legacy application, and here all objects are deleted that way:
$arr['theKey'] = null;
unset($arr['theKey']);
Is setting the element to null necessary?