2008-10-19 19 views

Répondre

7

Vous pouvez également faire:

$end = end(array_keys($array)); 

Mais je pense que votre chemin fait clairement ce que vous voulez faire, vous pouvez fouetter quelque chose comme:

function array_last_key($array) { 
    end($array); 
    return key($array); 
} 

C'est à ce sujet.

+0

Je voudrais juste jeter là-bas que c'est ma plus grande plainte avec PHP. Les indices de tableaux négatifs sont définitivement une bonne chose. –

0

Il n'y a pas de fonction spéciale pour cela en PHP, donc je pense que votre façon de faire est la plus efficace. Pour plus de lisibilité, vous pourriez vouloir le mettre dans une fonction appelée quelque chose comme array_last_key().

0

Si vous ne pouvez garantir que votre tableau ne sera pas avoir toutes les clés non numériques et que vous n'allez supprimer des clés, puis le dernier élément ajouté à la clé de votre tableau sera

$last_added = count($array)-1; 

Si vous avez vraiment besoin de garder une trace de la dernière clé ajoutée, vous voudrez peut-être trouver un plan pour trouver vos propres clés qui sont garantis pour être unique. De cette façon, vous aurez toujours la dernière clé ajoutée depuis que vous l'avez générée.

$array = array('test1', 'test2', 'test3', 'test4', 'test5'); 
// do a bunch of other stuff, probably a loop 
$new_key = generate_key(); 
$array[$new_key] = 'test6'; 
echo $new_key; // gives me blahblahfoobar123 
0

Mettez simplement pas. Les deux fin et clé sont Big O (1) temps. Toute autre manière ralentit votre code et ajoute de la complexité.

+0

Que voulez-vous dire par "Big O (1) time"? –

+0

Le temps reste le même, peu importe la taille de votre tableau – Greg