<?php

ini_set('display_errors', true);
error_reporting(E_ALL);

class Test
{
    public $name;
}

$test1 = new Test;
$test1->name = 'hello';

$test2 = new Test;
$test2->name = 'world';

$arr = array($test1, $test2);
unset($test1);

foreach ($arr as $test) {
	if ($test->name == 'hello') unset($test);
    /* Так только работает:
    if ($test->name == 'hello') {
    	$index = array_search($test, $arr);
    	unset($arr[$index]);
    }*/
}

var_dump($arr);