Как использовать array_diff для обоих массивов

0

У меня есть класс PHP и вы хотите сравнить данные с помощью двух массивов в соответствии с приведенным ниже кодом.

Но здесь я хочу показать данные разностей обоих массивов.

Я пробовал код ниже, но он не работает, и я застрял в этом.

<?php
class TestClass{
    public $fool = 'hehe';
    public $fool2 = 'huhu';
    public $fool3 = 'haha';
    public $fool4 = 'haha';

    public function __toString()
    {
        return $this->fool;
        return $this->fool2;
        return $this->fool3;
        return $this->fool4;

    }

}


$arr1 = array();
$class = new TestClass;
$class ->fool='one day';
$class ->fool2 ='test';
array_push($arr1,$class);

$arr2 = array();
$class2 = new TestClass;
$class2 ->fool ='one day';
$class2 ->fool2 ='different test';
array_push($arr2,$class2);

echo print_r($arr1).'<br/>';
echo print_r($arr2).'<br/>';
$result=array_diff($arr1,$arr2);
print_r($result);



?>
  • 0
    Показать ожидаемый результат.
  • 0
    Только первый оператор return функции __toString() что-то делает. Два других являются мертвым кодом (они никогда не выполняются).
Показать ещё 6 комментариев
Теги:
arrays

1 ответ

0
Лучший ответ

Вы слишком много смешаете, только чтобы исправить свой код, даже если я не согласен с вашей целью и как вы это делаете:

class TestClass{
    public $fool = 'hehe';
    public $fool2 = 'huhu';
    public $fool3 = 'haha';
    public $fool4 = 'haha';

    public function __toString()
    {
        return '1: '.$this->fool.'; 2: '.$this->fool2.'; 3: '.$this->fool3.'; 4: '.$this->fool4;
    }

    public function asArray()
    {
        return array($this->fool, $this->fool2,$this->fool3,$this->fool4);
    }
}

$arr1 = array();
$class = new TestClass;
$class ->fool='one day';
$class ->fool2 ='test';
$arr1[]=$class;

$arr2 = array();
$class2 = new TestClass;
$class2 ->fool ='one day';
$class2 ->fool2 ='different test';
$arr2[] = $class2;

echo $arr1[0]."\n";
echo $arr2[0];
print_r($result);

$result=array_diff($arr1[0]->asArray(),$arr2[0]->asArray());

print_r($result);
  • 0
    спасибо, твой код мне очень помогает, он работает прямо сейчас: cheer: :)
  • 0
    пожалуйста :-)
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню