array_intersect -- Ошибка Object of class ... could not be converted to string или Array to string conversion
Primary tabs
Ошибка возникает при использовании функции array_intersect(), вычисляющей схождение массивов.
Использую так (передаю массивы объектов):
$result = array_intersect($someSales, $otherSales);
Текст ошибки:
Error: Object of class Sale could not be converted to string
Если передавать не массив объектов, а массив массивов, то ошибка такая:
Notice: Array to string conversion
Решение
Оказывается, array_intersect() принимает на вход только массивы строк, поэтому, чтобы вычислить схождение массивов объектов придётся использовать обходные пути, например:
$result = array_uintersect(
$someSales,
$otherSales,
function($someSale, $otherSale) {
return spl_object_hash($someSale) <=> spl_object_hash($otherSale);
}
);Источник
- https://stackoverflow.com/questions/2834607/array-intersect-for-object-array-php
- Log in to post comments
- 3234 reads