遍历数组(+100个值)

时间:2019-04-22 22:31:45

标签: php arrays

这是我的数组:

$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个以上的值,如何实现呢?我还想考虑数组元素的奇数。

3 个答案:

答案 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>";
}