array_intersect возвращает серьезность: 4096 Сообщение: объект класса stdClass не может быть преобразован в строку CodeIgniter - PullRequest
0 голосов
/ 06 марта 2019

У меня есть два массива, оба имеют несколько значений с объектами класса 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

Несмотря на то, что он дает требуемые результаты, но с большим количеством ошибок, я прилагаю снимок экрана, но посмотрите на полосу прокрутки (большая часть ошибок)enter image description here

1 Ответ

0 голосов
/ 06 марта 2019

Этот код возвращает желаемые результаты ..

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 && !in_array( $v2, $diff ) ) array_push( $diff, $v2 );   }

  return $diff; }
...