0

2 つの配列を比較して、両方の配列に存在する最初の要素を取得しようとしています。これを行うには array_intersect を使用できると思いましたが、機能していないようです。

これが私のコードの代表的な例です。

<?php
$a1=array(
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>ZPL</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>EPL</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>PNG</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>JPG</LabelFormat></LabelSpec>'));
$a2=array(
    new SimpleXMLElement('<LabelSpec><LabelSize>8</LabelSize><LabelFormat>EPL</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>EPL</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>8</LabelSize><LabelFormat>PNG</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>PNG</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>8</LabelSize><LabelFormat>PDF</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>PDF</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>8</LabelSize><LabelFormat>JPG</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>6</LabelSize><LabelFormat>JPG</LabelFormat></LabelSpec>'),
    new SimpleXMLElement('<LabelSpec><LabelSize>NONE</LabelSize><LabelFormat>NONE</LabelFormat></LabelSpec>')
);

$result=array_intersect($a1,$a2);
print_r($result);
?>

これにより、出力が得られます

Array ( [0] => SimpleXMLElement Object ( [LabelSize] => 6 [LabelFormat] => ZPL ) [1] => SimpleXMLElement Object ( [LabelSize] => 6 [LabelFormat] => EPL ) [2] => SimpleXMLElement Object ( [LabelSize] => 6 [LabelFormat] => PNG ) [3] => SimpleXMLElement Object ( [LabelSize] => 6 [LabelFormat] => JPG ) )

ご覧のとおり、 の最初の要素は に$a1存在しませんが、交差点に存在し$a2ます。

4

1 に答える 1