在每次迭代中显示foreach循环中的两个元素


Show the two elements in foreach loop in every iteration?

如何在每次迭代中为每个循环显示中的两个元素?

例如,我有一个这样的数组:

$arr = array('a', 'b', 'c', 'd','e','f');

想要显示这样的记录:

  a-b
  c-d
  e-f

有什么想法吗?

您可以使用array_chunk,它正好适用于这类情况,是最短、最有效的方法。

$arr = array('a', 'b', 'c', 'd','e','f');
foreach(array_chunk($arr , 2) as $val) {
    echo implode('-', $val)."'n";
}

将数组分块为具有大小元素的数组。

更多详细信息:http://php.net/manual/en/function.array-chunk.php

演示:https://3v4l.org/BGNbq

使用for在数组上循环。

按计数器在每次迭代中打印当前值和当前值加一个值。

递增计数器。

<?php
$arr = array('a', 'b', 'c', 'd','e','f');
$i=0;
$len = count($arr);
for ($i=0; $i< $len; $i++) { // We could have used count($arr) 
//instead of $len. But, it will lead to 
//multiple calls to count() function causing code run slowly.
    echo "<br/>".$arr[$i] . '-' . $arr[$i+1];
  ++$i; 
}
?>
<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
?>

上面的例子将输出:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )
    [1] => Array
        (
            [0] => c
            [1] => d
        )
    [2] => Array
        (
            [0] => e
        )
)

试试这个:

<?php
  $array = array('a', 'b', 'c', 'd','e','f');
  $length = count($array);
  for ($i=0; $i< $length; $i+2) {
      echo "<br/>".$arr[$i] . '-' . $arr[$i+1]; 
  }
?>