6

アンシリアライズと組み合わせて配列ウォークを使用するよりも良い方法はありますか?

オブジェクトを含む 2 つの配列があります。オブジェクトは同じでも異なっていてもかまいません。両方の配列をマージして、一意のオブジェクトのみを保持したいと考えています。

これは、非常に些細なことに対する非常に長い解決策のように思えます。他に方法はありますか?

class Dummy
{
    private $name;
    public function __construct($theName) {$this->name=$theName;}
}

$arr = array();
$arr[] = new Dummy('Dummy 1');
$arr[] = new Dummy('Dummy 2');
$arr[] = new Dummy('Dummy 3');

$arr2 = array();
$arr2[] = new Dummy('Dummy 1');
$arr2[] = new Dummy('Dummy 2');
$arr2[] = new Dummy('Dummy 3');

function serializeArrayWalk(&$item)
{
    $item = serialize($item);
}

function unSerializeArrayWalk(&$item)
{
    $item = unserialize($item);
}

$finalArr = array_merge($arr, $arr2);
array_walk($finalArr, 'serializeArrayWalk');
$finalArr = array_unique($finalArr);
array_walk($finalArr, 'unSerializeArrayWalk');

var_dump($finalArr);
4

0 に答える 0