如何在foreach循环php中获取最后3项

时间:2016-09-23 20:37:12

标签: php foreach

我想获取代码的foreach循环的最后3项。

我的代码是:

foreach ($img as $spans) {

       $fimg = $spans ->getAttribute('loadlate');
       if ($spans ->getAttribute('class') === 'loadlate hidden ') {
       echo $fimg . '<br>';

}}

示例:我的输出将是:

111
222
333
444
555

我想打印 333-444-555

2 个答案:

答案 0 :(得分:0)

我只是反转数组并计算

$img = array_reverse($img);
$i = 0;
foreach ($img as $spans) {
    $fimg = $spans ->getAttribute('loadlate');
    if ($spans ->getAttribute('class') === 'loadlate hidden ') {
        if(++$i>3) breal;
        echo $fimg . '<br>';

    }}

答案 1 :(得分:0)

你可以切掉最后三个并循环过去。

foreach (array_slice($img, -3) as $spans) { ...

第二个想法,因为看起来你正在迭代一个DomNodelist,你可以用它的长度来构造一个for循环。

$len = $img->length;
$start = max($len - 3, 0);                      // calculate start index

for ($i=$start; $i < $len; $i++) {
    $spans = $img->item($i);                    // get the item at each index
    $fimg = $spans ->getAttribute('loadlate');
    if ($spans ->getAttribute('class') === 'loadlate hidden ') {
        echo $fimg . '<br>';
    }
}