如何在一个 foreach 循环中使用多个条件?

Posted

技术标签:

【中文标题】如何在一个 foreach 循环中使用多个条件?【英文标题】:How to use multiple condition in one foreach loop? 【发布时间】:2018-07-20 00:29:01 【问题描述】:

我可以这样做吗?“foreach($products as $product && $categories as $category)”。一个foreach循环中有多个条件?如果没有,那我该如何进行呢?

【问题讨论】:

你不能那样做 嗯...你到底想达到什么目的? foreach 是围绕单个数组的循环机制,而不是条件语句。 我不明白为什么人们用有线解决方案来回答这个问题,而不是关闭它 - 条件?前锋?你在说什么? 【参考方案1】:

你不能那样做。 但你能做的是在循环内循环

foreach($categories as $category)

   foreach($products as $product)
   

   

【讨论】:

【参考方案2】:

如果两个数组的长度相同,只需使用 for 循环并使用当前索引访问元素。 您只需确保 indezies 在两个数组中匹配。 使用 foreach 循环无法实现您正在尝试的目标。

for ($i = 0; $i < count($arr1); $i++) 
    // do whatever you want with $arr1[$i] and $arr2[$i]

如果您的数组具有相同的长度,但 indizies 可能不同并且您仍然希望它们保持一致,请在循环之前使用 array_values() 重新索引两个数组。

这仅适用于基于索引的数组!

【讨论】:

【参考方案3】:

foreach( $codes 作为 $code 和 $names 作为 $name ) 这是无效的。

你可能想要这样的东西......

foreach( $codes as $index => $code ) 
   echo '<option value="' . $code . '">' . $names[$index] . '</option>';

【讨论】:

【参考方案4】:

使用两个循环:

foreach ($products as $product) 
    foreach ($categories as $category) 
      //  using $product and $category
    

【讨论】:

这与 OP 想要完成的目标不同。 @ManuelMannhardt 您完全在猜测 OP 想要什么,因为这个问题没有意义。目前看来,这似乎是更有可能的候选人。 @ManuelMannhardt OP 想要完成什么? 好吧,对我来说,这听起来和看起来更像是他有两个数组,并且希望使用相同的循环处理这两个数组,而不是迭代第一个数组,然后对第二个数组的所有项目进行循环第一个元素的每个元素的数组。

以上是关于如何在一个 foreach 循环中使用多个条件?的主要内容,如果未能解决你的问题,请参考以下文章

获取具有2个或更多条件的foreach循环的值

如何在“R”中的foreach循环中导出多个函数或包

多个 foreach 循环语句

如何在 mvc 中使用 foreach 循环验证多个文本框?

如何在laravel中的foreach循环中传递多个变量

嵌套的 foreach 循环使用 if 条件创建重复记录 - PHP Laravel 8