2013-05-16 4 views
1

Мне нужно исключить элементы массива $tempobjects из массива $objects. Каков самый быстрый способ сделать это?Исключить элементы одного массива из другого массива

$objects = new MyObjects(); 
$tempobjects = new MyObjects(); 

for($i=0; $i<10; $i++) { 
    $objects->addObject(new MyObject(...)); 
} 

//...fill $tempobjects with some temporary data 

$tempobjects = $objects - $tempobjects; // HOW TO DO SOMETHING LIKE THIS? 
+1

Похоже, что $ objects и $ tempObjects являются объектами (или объектами, которые составляют коллекцию данных), а не массивами –

+1

Что такое 'MyObjects'? –

+0

'array_diff' или' array_diff_assoc' - обычные способы сделать это для массивов, но, как сказал маркер, вы имеете объекты, поэтому эти функции, вероятно, не сработают. попробуйте преобразовать ваши объекты в массивы. – sgroves

ответ

2

Если$tempobjects и $objects были массивы (как ваше название упоминается), который основан на примере кода они являются не, можно исключить элементы, используя функции array_diff() (для сравнения значений) или array_diff_key() (для сравнения ключей).

См. Также short demo.

Смежные вопросы