S'il vous plaît aidez-moi à traduire ce pseudo-code en vrai code php :
foreach ($arr as $k => $v)
if ( THIS IS NOT THE LAST ELEMENT IN THE ARRAY)
doSomething();
Edit : le tableau peut avoir des clés numériques ou de chaîne
S'il vous plaît aidez-moi à traduire ce pseudo-code en vrai code php :
foreach ($arr as $k => $v)
if ( THIS IS NOT THE LAST ELEMENT IN THE ARRAY)
doSomething();
Edit : le tableau peut avoir des clés numériques ou de chaîne
Cela fait toujours l'affaire pour moi
foreach($array as $key => $value) {
if (end(array_keys($array)) == $key)
// Last key reached
}
Modifier 30/04/15
$last_key = end(array_keys($array));
reset($array);
foreach($array as $key => $value) {
if ( $key == $last_key)
// Last key reached
}
Pour éviter l'avertissement E_STRICT mentionné par @Warren Sergent
$array_keys = array_keys($array);
$last_key = end($array_keys);
$myarray = array(
'test1' => 'foo',
'test2' => 'bar',
'test3' => 'baz',
'test4' => 'waldo'
);
$myarray2 = array(
'foo',
'bar',
'baz',
'waldo'
);
// Get the last array_key
$last = array_pop(array_keys($myarray));
foreach($myarray as $key => $value) {
if($key != $last) {
echo "$key -> $value\n";
}
}
// Get the last array_key
$last = array_pop(array_keys($myarray2));
foreach($myarray2 as $key => $value) {
if($key != $last) {
echo "$key -> $value\n";
}
}
Étant donné que array_pop
fonctionne sur le tableau temporaire créé par array_keys
il ne modifie pas du tout le tableau d'origine.
$ php test.php
test1 -> foo
test2 -> bar
test3 -> baz
0 -> foo
1 -> bar
2 -> baz
Je sais que c'est ancien et que l'utilisation de l'itérateur SPL est peut-être juste exagérée, mais de toute façon, une autre solution ici :
$ary = array(1, 2, 3, 4, 'last');
$ary = new ArrayIterator($ary);
$ary = new CachingIterator($ary);
foreach ($ary as $each) {
if (!$ary->hasNext()) { // we chain ArrayIterator and CachingIterator
// just to use this `hasNext()` method to see
// if this is the last element
echo $each;
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.