我有两个数组。第一个数组保存这些值。
[a] => stdClass Object
(
[name] => Chris
[id] => AaKk4j0abEkJSSxYKKnss2LTZc9BmMDrYmm1TFxkIHR8PSU50OagCsl2pgJjVTm7MrkVBVcJgydJGViRU4HHClyWVm3arL4Y5cdWKyZQHtdltg
)
[b] => stdClass Object
(
[name] => John
[id] => AaL4_sWesWgGcHsd3eoBB3NDvpekzTQHE1J9zLUJs6zZPY7urzXzuhvA3uWuW0IOGiRJPznFsCIJFzZkm2_vIlSU93njnSwgiJbM1fmI9fUulw
)
[c] => stdClass Object
(
[name] => James
[id] => AaJ3g8G-nssIY7rhMq6pGMI5989ICREh7_MQ37Vre8oNuaBkO-HFgNUWcH2tZdyFwsWOv_kG4eVliss-FY_HmRFh4gmROJKkFCFKMjzatc_2iw
)
第二个数组保存这些值。
[d] => stdClass Object
(
[id] => 1003880559625244
[name] => Aftab
)
[e] => stdClass Object
(
[id] => 448636891977424
[name] => John
)
[f] => stdClass Object
(
[id] => 809530442478820
[name] => James
)
[g] => stdClass Object
(
[id] => 809530442478820
[name] => Chris
)
我正在尝试比较两个数组并仅获取不匹配的值。
例如本例 Aftab
是数组 1 中不存在且唯一的那个。
我尝试使用 PHP 中的 array_diff() 函数执行此操作,但它给出了此错误:
Catchable fatal error: Object of class stdClass could not be converted to string
最佳答案
使用array_udiff
- 通过使用回调函数进行数据比较来计算数组的差异。 http://us.php.net/array_udiff
function compare_names($a, $b)
{
return strcmp($a->name, $b->name);
}
$newarr = array_udiff($b, $a, 'compare_names');
关于php - 在包含多个对象的数组上使用 array_diff(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30866539/