web-dev-qa-db-fra.com

Obtenir la dernière paire clé-valeur dans PHP tableau

J'ai un tableau qui est structuré comme ceci:

[33] => Array
    (
        [time] => 1285571561
        [user] => test0
    )

[34] => Array
    (
        [time] => 1285571659
        [user] => test1
    )

[35] => Array
    (
        [time] => 1285571682
        [user] => test2
    )

Comment puis-je obtenir la dernière valeur du tableau, tout en maintenant l'index [35]?

Le résultat que je recherche est le suivant:

[35] => Array
    (
        [time] => 1285571682
        [user] => test2
    )
46
greenbandit

essayez d'utiliser

end($array);
152
Alex Pliutau
$last = array_slice($array, -1, 1, true);

Voir http://php.net/array_slice pour plus de détails sur la signification des arguments.

P.S. Contrairement aux autres réponses, celle-ci fait ce que vous voulez. :-)

69
salathe

Vous pouvez utiliser end pour faire avancer le pointeur interne jusqu'à la fin ou array_slice pour obtenir un tableau contenant uniquement le dernier élément:

$last = end($arr);
$last = current(array_slice($arr, -1));
10
Gumbo

Si vous avez un tableau

$last_element = array_pop(array);
4
Govinda Yadav

Comme dit Gumbo,

<?php

$fruits = array('Apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>
2
ipalaus
// if your array keys lile
// 0 1 2 3 4 ...

$lastindex= count($ar)-1;

// but if you are not sure

$ar_k=array_keys($ar);
$lastindex=$ar_k[count($ar_k)-1];

// will work
2
Ali

Une autre solution pourrait être:

$value = $arr[count($arr) - 1];

Ce qui précède comptera la quantité de valeurs du tableau, soustraira 1 et retournera la valeur.

Remarque: Ceci ne peut être utilisé que si vos clés de tableau sont numériques.

0
Yas

Comme la clé est nécessaire, la solution acceptée ne fonctionne pas.

Ce:

end($array);
return array(key($array) => array_pop($array));

reviendra exactement comme l'exemple dans la question.

0
jmary