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); } );
Источник
- Log in to post comments
- 2687 reads