PHP:比较2个不同的数组/对象。检查另一个中是否存在字段值

时间:2015-01-31 18:39:30

标签: php arrays

我有一个像这样的对象/数组:

[LineItems] => Array
                (
                    [0] => stdClass Object
                        (

                            [ProductNumber] => PAC-051-9716
                            [Description] => KIT CLOSURE 6" BUTT THRD BLK
                            [Cost] => 24.84
                            [ExtCost] => 24.84
                            [OrdNum] => X4146223

                        )

                )

另一个对象/数组看起来像这样:

                    [0] => VendorBillItem Object
                        (   
                            [vendorName] => PAC-051-9716
                            [quantity] => 1
                            [rate] => 24.84
                            [amount] => 24.84
                        )

如何通过针对[vendorName]字段值检查第一个数组中的[ProductNumber]字段值是否存在?

提前致谢。干杯!

2 个答案:

答案 0 :(得分:1)

我建议你为第二个数组构建一个索引。

foreach ($vendorBills as $key => $vendorBill) {
  empty($index[$vendorBill->vendorName]) && $index[$vendorBill->vendorName] = array();
  $index[$vendorBill->vendorName][] = $key;
}

之后只需检查

!empty($index[$lineItem->ProductNumber])

答案 1 :(得分:0)

假设有两个数组命名为$ lineitemsArray和$ venderBillArray

foreach($lineitemsArray as $lineItem)
{
    foreach($venderBillArray as $vendorItem)
    {
        if($lineItem->ProductNumber==$vendorItem->vendorName)
        {

            echo "equal";

        }
        else{
            echo "not equal";
        }
     }
}