这是我的数组:
$my_array = array("1", "2", "3", "4");
我想实现以下目标:
1 vs 2
3 vs 4
因为我的数组长度只有4,所以我很容易做到这一点:
echo $my_array[0]." vs ".$my_array[1];
echo "<br>";
echo $my_array[2]." vs ".$my_array[3];
但是如果我的数组具有100个以上的值,如何实现呢?我还想考虑数组元素的奇数。
答案 0 :(得分:3)
您可以使用“ for”循环,每个循环以两个为增量:
$len = count($my_array);
for($i=0; $i<$len; $i=$i+2) {
echo $my_array[$i]." vs ".$my_array[$i+1]."<br/>;
}
如果不确定数组是否始终包含偶数个索引,则可以添加条件以忽略没有更多对的情况下的最后一种情况。
$len = count($my_array);
for($i=0; $i<$len; $i=$i+2) {
if($i !== $len-1) {
echo $my_array[$i]." vs ".$my_array[$i+1]."<br/>;
}
}
答案 1 :(得分:3)
当然,for
循环是显而易见的答案,但是还有更多有趣的答案;)
$my_array = ["1", "2", "3", "4"];
$new_array = array_map(
function($v) {return isset($v[1]) ? "$v[0] vs $v[1]<br/>" : null; },
array_chunk($my_array, 2)
);
print_r($new_array);
输出:
Array
(
[0] => 1 vs 2<br/>
[1] => 3 vs 4<br/>
)
答案 2 :(得分:2)
您可以使用for循环遍历数组。
$my_array = array("1", "2", "3", "4","5","6");
for ($x = 0; $x < sizeof($my_array); $x = $x+2) {
echo $my_array[0+$x]." vs ".$my_array[1+$x];
echo "<br>";
}