如何验证具有对象的数组中是否存在项?

时间:2015-01-10 13:06:30

标签: php

我有一个名为items的对象数组:

Array 
( 
    [0] => stdClass Object 
        (   
            [id] => 1 
            [libelle_fr] => service un 
            [libelle_en] => service one 
            [prix] => 1111.222 
        ) 
    [1] => stdClass Object 
        ( 
            [id] => 2 
            libelle_fr] => serivce deux 
            [libelle_en] => service tow 
            [prix] => 2222.222
        )
    [2] => stdClass Object 
        ( 
            [id] => 3 
            [libelle_fr] => service trois 
            [libelle_en] => service three 
            [prix] => 333.33 
        )  
) 

我想查看项目数组中是否存在id号码5,或者该类别中的任何其他成员。

3 个答案:

答案 0 :(得分:3)

您还可以使用FluentFunctions

中的ouzo goodies
 $result = Arrays::any($array, FluentFunctions::extractField('id')->equals(5));

答案 1 :(得分:2)

只需循环数组:

$input  = array(); // your input data
$exists = false;

foreach ($input as $item) {
  if ($item->id == 5) {
    $exists = true;
   break;
  }
}

您还可以使用array_reduce

$exists = array_reduce($input, function($result, $item){
  return $result || $item->id == 5;
}, false);

答案 2 :(得分:2)

使用ouzo-goodies中的数组:

$result = Arrays::any($array, function($element) {
    return $element->id == 5;
});