supprimer la dernière valeur du tableau? php

1 type de question

$transport = array('foot', 'bike', 'car', 'plane');

puis-je supprimer l'avion ? est-il possible ?

2 type de question

 $transport = array('', 'bike', 'car', ''); // delate the last line
 $transport = array('', 'bike', 'car', 'ferrari'); // dont the last line
 $transport = array('ship', 'bike', 'car', 'ferrari'); // dont the last line

y a-t-il un moyen facile de supprimer le dernier tableau "si la dernière valeur du tableau est vide, puis supprimer" si elle n'est pas vide, alors ne pas supprimer ? mais ne pas supprimer le premier tableau ?

12
demandé sur hakre 2010-07-26 23:48:07

5 réponses

if(empty($transport[count($transport)-1])) {
    unset($transport[count($transport)-1]);
}
36
répondu Scott Saunders 2012-11-22 16:39:29

la façon La plus simple: array_pop () qui va faire apparaître un élément de la fin du tableau.

Comme pour la 2ème question:

if (end($transport) == "") { 
    array_pop($transport); 
}

devrait gérer le second.

EDIT:

Modifié le code pour se conformer à l'information mise à jour. Cela devrait fonctionner avec des tableaux associatifs ou indexés.

Correction de l'array_pop, compte tenu du commentaire de Scott. Merci pour la capture!

corrigé l'erreur fatale, je suppose vide ne peut pas être utilisé avec end comme je l'avais. Le code ci-dessus ne capturera plus null / false si cela est nécessaire vous pouvez assigner une variable de la fonction de fin et tester qui comme ainsi:

$end_item = end($transport);
if (empty($end_item)) { 
    array_pop($transport); 
}

Désolé d'avoir posté un code incorrect. La-dessus je les ai testés.

30
répondu Brad F Jacobs 2010-07-26 20:24:11

pour le # 1,

$transport=array_slice($transport,0,count($transport)-1)
9
répondu JAL 2010-07-26 20:24:20

vous pouvez simplement faire cela par array_pop() fonction:

array_pop($transport);
4
répondu Martin AJ 2016-06-12 14:17:23
$endvalue = & end($transport);
array_pop($endvalue);
1
répondu viji 2014-09-29 10:10:54