foreach在具有匹配属性的对象数组上

时间:2012-11-13 13:41:45

标签: php arrays object

我有一个用于创建菜单的对象数组,每个对象都有属性id,video_id和chapter_id。

我想为每个循环制作一个,例如

foreach($menu_objects as $object WHERE $object->chapter == $variable)

有没有办法做到这一点?

4 个答案:

答案 0 :(得分:4)

PHP不提供这样的语法,但是,你总是可以将它作为if - 语句作为循环中的第一行:

foreach ($menu_objects as $object) {
    if ($object->chapter != $variable) continue;
    ... process as normal ...

答案 1 :(得分:1)

在你的循环中嵌入一个if:

foreach($menu_objects as $object){
  if($object->chapter == $variable){
    // do something here
  }
}

答案 2 :(得分:0)

几乎没有方法

foreach(array_filter($menu_objects, function($o) { return $o->chapter == $variable}) as $object)

或者

foreach($menu_objects as $o)
{
    if ($o->chapter == $variable)
    {
        //Code here
    }
}

答案 3 :(得分:0)

只需添加if?

foreach($menu_objects as $object) {
   if ($object->chapter == $variable) {
      // Do Something?
   }
}