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

Php 具有匹配属性的对象数组上的foreach,php,arrays,object,Php,Arrays,Object,我有一个用于创建菜单的对象数组,每个对象都有属性id、视频id和章节id 我想为每个循环创建一个 foreach($menu_objects as $object WHERE $object->chapter == $variable) 有没有办法做到这一点 几乎没有办法 foreach(array_filter($menu_objects, function($o) { return $o->chapter == $variable}) as $object) 或 几条路 fo

我有一个用于创建菜单的对象数组,每个对象都有属性id、视频id和章节id

我想为每个循环创建一个

foreach($menu_objects as $object WHERE $object->chapter == $variable)
有没有办法做到这一点

几乎没有办法

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

几条路

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


PHP不提供这样的语法,但是,您可以始终将其作为循环中的第一行使用
if
-语句:

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

PHP不提供这样的语法,但是,您可以始终将其作为循环中的第一行使用
if
-语句:

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

只需在循环中嵌套一个if:

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

只需在循环中嵌套一个if:

foreach($menu_objects as $object){
  if($object->chapter == $variable){
    // do something here
  }
}
只需添加一个if

foreach($menu_objects as $object) {
   if ($object->chapter == $variable) {
      // Do Something?
   }
}
只需添加一个if

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

粘贴一些$menu_对象的样本数据可能最简单,只需在foreach中进行if测试。粘贴一些$menu_对象的样本数据可能最简单,只需在foreach中进行if测试。+1,我最喜欢这种样式,因为它减少了嵌套,并立即向开发人员表明,这样的项不会被处理(你不必读到
if
块的末尾就可以看到它)。到目前为止,这是最好的解决方案。简单而快速。+1,我最喜欢这种风格,因为它减少了嵌套,并且可以立即向开发人员清楚地表明这样的项目不会被处理(你不必读到
if
块的末尾就可以看到它).是目前为止最好的解决方案。简单快速。