2

内部ポインターを変更せずに配列の最後の要素を取得するにはどうすればよいですか?

私がやっていることは次のとおりです。

while(list($key, $value) = each($array)) {  
    //do stuff  
    if($condition) {  
        //Here I want to check if this is the last element of the array            
        prev($array);  
    }  
}

end($array)物事を台無しにするでしょう。

4

4 に答える 4

2

これを試して:

<?php
$array=array(1,2,3,4,5);
$totalelements = count($array);
$count=1;

while(list($key, $value) = each($array)) {  
    //do stuff  
    if($count == $totalelements){ //check here if it is last element
        echo $value;
    }
    $count++;
}
?>
于 2012-12-15T10:00:30.957 に答える
2

それは簡単です、あなたは使うことができます:

$lastElementKey = end(array_keys($array));
while(list($key, $value) = each($array)) {  
    //do stuff  
    if($key == $lastElementKey) {  
        //Here I want to check if this is the last element of the array            
        prev($array);  
    }  
}
于 2012-12-15T10:15:59.790 に答える
1

次のようなものを使用しないのはなぜですか:

$lastElement= end($array);
reset($array);
while(list($key, $value) = each($array)) {  
    //do stuff   
}

// Do the extra stuff for the last element
于 2012-12-15T10:22:23.443 に答える
0

このようなもの:

$array = array_reverse($array, true);
$l = each($array);
$lastKey = $l['key'];
$array = array_reverse($array, true);

while(list($key, $value) = each($array)) {  
    //do stuff  
    if($key == $lastKey) {  
        echo $key . ' ' . $value . PHP_EOL;
    }  
}

ここでの問題は、配列が大きい場合、元に戻すのに時間がかかることです。

于 2012-12-15T10:11:45.057 に答える