2012-11-13 64 views
0

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

我想做出如

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

是否有这样做的方式,每个回路这样?

+0

粘贴$ menu_objects – GBD

+0

一些样本数据可能比较容易刚刚拥有的foreach内,如果测试。 – Pitchinnate

回答

4

PHP不提供语法这样的,但是,你总是可以让一个if语句来作为循环的第一行:

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

+ 1,我最喜欢这种风格,因为它减少了嵌套,它使开发人员立即明白,这样的项目不会被处理(你不必读到'if'块的末尾来看) 。 – Jon

+0

迄今为止最好的解决方案。简单而快速。 – Peon

+0

很好的答案,谢谢 – Djave

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 
    } 
} 
1

只是在你的循环中嵌套一个:

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

只需添加一个if?

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