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

时间:2016-01-08 07:02:14

标签: php foreach

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

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

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

想要显示这样的记录:

  a-b
  c-d
  e-f

有什么想法吗?

4 个答案:

答案 0 :(得分:12)

您可以使用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

答案 1 :(得分:3)

使用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; 
}
?>

答案 2 :(得分:0)

<?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
        )

)

答案 3 :(得分:0)

试试这个:

<?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]; 
  }
?>