如何在每次迭代中为每个循环显示中的两个元素?
例如,我有一个这样的数组:
$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];
}
?>