मैं ऊपर जवाब के साथ सहमत हैं, लेकिन पूर्णता के लिए (जहाँ आप एक कुंजी के रूप में उपयोग करने के लिए अद्वितीय आईडी नहीं हो सकता है) के लिए एक सरणी से मानों को दूर करने के मेरे पसंदीदा तरीके हैं इस प्रकार है:
/**
* Remove each instance of a value within an array
* @param array $array
* @param mixed $value
* @return array
*/
function array_remove(&$array, $value)
{
return array_filter($array, function($a) use($value) {
return $a !== $value;
});
}
/**
* Remove each instance of an object within an array (matched on a given property, $prop)
* @param array $array
* @param mixed $value
* @param string $prop
* @return array
*/
function array_remove_object(&$array, $value, $prop)
{
return array_filter($array, function($a) use($value, $prop) {
return $a->$prop !== $value;
});
}
जिसका उपयोग निम्न तरीके से किया जाता है:
$values = array(
1, 2, 5, 3, 5, 6, 7, 1, 2, 4, 5, 6, 6, 8, 8,
);
print_r(array_remove($values, 6));
class Obj {
public $id;
public function __construct($id) {
$this->id = $id;
}
}
$objects = array(
new Obj(1), new Obj(2), new Obj(4), new Obj(3), new Obj(6), new Obj(4), new Obj(3), new Obj(1), new Obj(5),
);
print_r(array_remove_object($objects, 1, 'id'));
आशा है कि मदद करता है।
मुझे लगता है कि आपका मतलब है 'array_push ($ this-> arrObservers, $ o) '? – deceze