我有對象的數組,但我需要從他們身上除去由幾個性質相似的對象:從數組中刪除類似的對象?
例如:
array(12) {
[0]=>
object(stdClass)#848 (5) {
["variant"]=>
object(stdClass)#849 (4) {
["name"]=>
string(8) "Alex"
}
["age"]=>
int(10)
}
[1]=>
object(stdClass)#851 (5) {
["variant"]=>
object(stdClass)#852 (4) {
["name"]=>
string(8) "Alex"
}
["age"]=>
int(10)
}
如何使一個對象數組本(如果例如,我只需要通過名稱屬性進行比較?)
仍然有問題。
更新
我已經創建對象的一個新的數組:
$objects = array(
(object)array('name'=>'Stiven','age'=>25,'variant'=>(object)array('surname'=>'Sigal')),
(object)array('name'=>'Michael','age'=>30,'variant'=>(object)array('surname'=>'Jackson')),
(object)array('name'=>'Brad','age'=>35,'variant'=>(object)array('surname'=>'Pit')),
(object)array('name'=>'Jolie','age'=>35,'variant'=>(object)array('surname'=>'Pit')),
);
echo "<pre>";
print_r($objects);
所以我需要做的是要比較的對象屬性(variant->姓氏和年齡),如果兩個對象具有相似的年齡和變體 - >姓氏,我們需要刪除這些對象中的一個。
的solution
半是:
$tmp = array();
foreach ($objects as $item=>$object)
{
$tmp[$object->variant->surname][$object->age] = $object;
}
print_r($tmp);
可惜的是我需要的對象的舊式陣列。
您可以使用帶引號的'array_walk'有回調... – 2013-02-26 10:14:01
如果有多個對象具有相同的名稱會發生什麼? – Jon 2013-02-26 10:18:16
如果具有相同名稱的多個對象必須只是其中一個數組。 – Smash 2013-02-26 10:25:31