如何从数组中删除对象?

46

在PHP中,从对象数组中删除对象的一种优雅方法是什么?

class Data{

  private $arrObservers;

  public add(Observer $o) {  
    array_push($this->arrObservers, $o);  
  }    
  public remove(Observer $o) {  
    // I NEED THIS CODE to remove $o from $this->arrObservers
  }  
  
}
12个回答

-1

试试这个,会解决你的问题。

class Data{
  private $arrObservers;

  public add(Observer $o) {  
    array_push($this->arrObservers,$o);  
  }    

  public remove($Observer $o) {  
    unset($this->arrObservers[$o]);  
  }  
}

1
array_push将分配一个数字键,所以即使数组可以使用对象作为键,您也不会找到$o作为键。 - Gordon

-1

我相信这是最好的方式

$index = array_search($o, $this->arrObservers, true);

unset($this->arrObservers[$index]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接