#php #arrays #object #stdclass #array-intersect
#php #массивы #object #stdclass #array-intersect
Вопрос:
Я получил два массива, оба имеют несколько значений с объектами класса std, я хочу использовать ‘array_intersect’, но он показывает «Серьезность: 4096 Сообщение: объект класса stdClass не удалось преобразовать в строку»
Код контроллера:
$AlreadyInsertedList = $this->bill->GetBillsbyDate($Givendate); //array1
$NotInserted = $this->admin->GetACustomersbyArea($areaid); //array2
$finallist = NULL; //finalarray
$finallist = array_intersect($AlreadyInsertedList,$allcustomersbyarea); //Line number 88
//$array = json_decode(json_encode($finallist)); //already tried not working
Хотя он дает требуемые результаты, но с большим количеством ошибок, я прилагаю снимок экрана с ним, посмотрите на панель scoll (большое количество ошибок)
Ответ №1:
Этот код возвращает желаемые результаты..
function ary_diff( $ary_1, $ary_2 ) { // compare the value of 2 array // get differences that in ary_1 but not in ary_2 // get difference that in ary_2 but not in ary_1 // return the unique difference between value of 2 array $diff = array();
// get differences that in ary_1 but not in ary_2 foreach ( $ary_1 as $v1 ) {
$flag = 0;
foreach ( $ary_2 as $v2 ) {
$flag |= ( $v1 == $v2 );
if ( $flag ) break;
}
if ( !$flag ) array_push( $diff, $v1 ); }
// get difference that in ary_2 but not in ary_1 foreach ( $ary_2 as $v2 ) {
$flag = 0;
foreach ( $ary_1 as $v1 ) {
$flag |= ( $v1 == $v2 );
if ( $flag ) break;
}
if ( !$flag amp;amp; !in_array( $v2, $diff ) ) array_push( $diff, $v2 ); }
return $diff; }
Комментарии:
1. Если этот код сработал для вас, то вы можете принять свой собственный ответ, поэтому, пожалуйста, сделайте это, чтобы вопрос можно было закрыть.