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

Meh*_*har 7 php foreach

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

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

$arr = array('a', 'b', 'c', 'd','e','f');
Run Code Online (Sandbox Code Playgroud)

并希望显示如下记录:

  a-b
  c-d
  e-f
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ann*_*bak 12

您可以使用array_chunk它,这意味着完全适合这种情况,它是最短和最有效的方法.

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

将数组块化为具有大小元素的数组.

更多细节:http: //php.net/manual/en/function.array-chunk.php

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

  • 优秀答案+1 (3认同)

Pup*_*pil 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; 
}
?>
Run Code Online (Sandbox Code Playgroud)

  • 嗯,使用此解决方案,如果“$len%2 = 1”,您将获得“未定义的偏移量:&lt;faulty_offset_number&gt;” (2认同)