【问题标题】:PHP first 3 then break and continue again?PHP先3然后再中断并继续?
【发布时间】:2012-06-04 20:33:45
【问题描述】:

我正在尝试使用数组和循环对所有内容进行排序
假设这是一个数组,

$arr = array('One','Two','Three','Four','Five','Six');

我想选择其中的前三个用作
$arr[0]、$arr[1] 和 $arr[2]
这以一、二、三结束
我想在下一个 3 中使用相同的 ..
打破它并再次使用相同的 0 1 2 索引返回第二个三个
这是一个解释更多的例子,

$arr = array('One','Two','Three','Four','Five','Six');

  echo $arr[0].$arr[1].$arr[2]; // OneTwoThree
        break; // < ??
  echo $arr[0].$arr[1].$arr[2]; // FourFiveSix

另外,我想将它与 foreach 循环一起使用

$arr = array('One','Two','Three','Four','Five','Six');
  foreach($arr as $num){
  echo $num; // OneTwoThree
   if($something == 3){ // < ??
        break; // < ??
    }
  echo $num;   // FourFiveSix
   }

我想要做的是使用数组的每三个数组稍后使用它们

【问题讨论】:

  • 实际上想做什么?你可能想多了这个问题。
  • 我认为他想要换行......并且完全误解了“break”的用法

标签: php arrays loops


【解决方案1】:

使用array_chunk 并遍历结果:

foreach(array_chunk($arr, 3) as $a) {
  echo $a[0], $a[1], $a[2];
}

这里添加了换行符:

foreach(array_chunk($arr, 3) as $a) {
  echo $a[0], $a[1], $a[2], "<br>\n";
}

注意:最后一个元素可能少于三个!一个可能的解决方法是使用implode 来连接元素:

foreach(array_chunk($arr, 3) as $a) {
  echo implode('', $a), "<br>\n";
}

【讨论】:

  • RoseWarad,array_chunk 会将 $arr 拆分为三个元组。每次 foreach 循环运行时,$a 都会有(最多)三个来自 $arr 的不同元素。试试看!
【解决方案2】:

编辑:array_chunk() 更明智...清晨

<?php
$arr = array('One','Two','Three','Four','Five','Six');


for($i = 0, $i < count($arr); ++$i)
{
    if( ! ($i + 1) % 3)
    {
        continue;
    }

    echo $arr[$i - 2] . $arr[$i - 1] . $arr[$i]
}

【讨论】:

  • 为什么不只增加 3 而不是 if 语句?
  • 好问题,我没想到,我才刚醒来!感谢指点
猜你喜欢
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多