如何从PHP 5.6中的五个元素开始foreach

时间:2018-08-01 19:39:17

标签: php foreach

我读了一个xml文件。里面有很多物品。例如二十。我想从五个元素开始到十个foreach,仅此而已。这是我的代码:

$tablica = array('1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', '10 ');
foreach ($tablica as $a => $b) {
    if($a < 4 )
        continue;
        print_r ($b);

}

结果是:6 7 8 9 10所以效果很好。但是如何添加第二个条件呢?例如:if($a < 4 && $a ? 10),但这是行不通的。如何解决这个问题?

亲切的问候

3 个答案:

答案 0 :(得分:1)

您可以在循环之前对数组进行切片:

$tablica = array('1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', '10 ');
foreach (array_slice($tablica, 4, 6) as $a => $b) {
    print_r($b);
}

答案 1 :(得分:0)

多种可能性:

第一

$tablica = array('1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', '10 ', '11 ', '12 ');
foreach ($tablica as $a => $b) {
    if($a < 4 || $a >= 10) {  // the || (= "OR") is the main difference to your version
        continue;
    }
    print_r ($b);
}
// output 5 6 7 8 9 10

缺点:您遍历不需要的元素

第二

foreach ($tablica as $a => $b) {
    if($a < 4) {
        continue;
    }
    if($a>=10) {  // break the loop if we've reached the 10th item
       break;
    }
    print_r ($b);
}
// output 5 6 7 8 9 10

好一点...

第3个(@FrankerZ版本)和最好的

for ($i=4; $i<10; $i++) { echo $tablica[$i]; }
// output 5 6 7 8 9 10

答案 2 :(得分:0)

如果您想限制始终从第5个元素开始并在第10个元素结束,则可以结合使用in_arrayrange来寻找所需内容。

$tablica = ['1 ', '2 ', '3 ', '4 ', '5 ', '6 ', '7 ', '8 ', '9 ', '10 '];
foreach ($tablica as $a => $b) {
    if (in_array($a, range(4, 9))) {
        print_r($b);
    }
}

结果:

5 6 7 8 9 10