我有一个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)
即使我不同意您的目标以及您这样做的方式,您也要混合太多东西,只是为了修复您的代码:
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);