Y at-il un moyen facile de supprimer un élément d’un tableau PHP, tel que `` ne comprend plus cet élément ?
J’ai pensé qu’il affectant la valeur null le ferait, mais apparemment pas.
Y at-il un moyen facile de supprimer un élément d’un tableau PHP, tel que `` ne comprend plus cet élément ?
J’ai pensé qu’il affectant la valeur null le ferait, mais apparemment pas.
Il convient de noter que unset()
va garder les index intacte, qui est ce que vous attendez lors de l'utilisation chaîne index (tableau comme table de hachage (hashtable), mais peut être assez surprenant lorsque l'on traite avec entier tableaux indexés:
$array = array(0, 1, 2, 3);
unset($array[2]);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[3]=>
int(3)
} */
$array = array(0, 1, 2, 3);
array_splice($array, 2, 1);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(3)
} */
Donc, array_splice()
peut être utilisé si vous souhaitez normaliser votre entier clés. Une autre option est d'utiliser array_values()
après unset()
:
$array = array(0, 1, 2, 3);
unset($array[2]);
$array = array_values($array);
var_dump($array);
/* array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(3)
} */
// our initial array
$arr = array("blue", "green", "red", "yellow", "green", "orange", "yellow", "indigo", "red");
print_r($arr);
// remove the elements who's values are yellow or red
$arr = array_diff($arr, array("yellow", "red"));
print_r($arr);
C'est la sortie à partir du code ci-dessus:
Array ( [0] => bleu [1] => vert [2] => rouge [3] => jaune [4] => vert [5] => orange [6] => jaune [7] => indigo [8] => rouge )
Array ( [0] => bleu [1] => vert [4] => vert [5] => orange [7] => indigo )
Maintenant, array_values() permet de réindexer un tableau numérique bien, mais va supprimer toutes les clés des chaînes à partir de la matrice et de les remplacer par des chiffres. Si vous avez besoin de conserver les noms de clé (chaînes de caractères), ou de revisiter le tableau si toutes les touches sont numériques, l'utilisation array_merge():
$arr = array_merge(array_diff($arr, array("yellow", "red")));
print_r($arr);
sorties
Array ( [0] => bleu [1] => vert [2] => vert [3] => orange [4] => indigo )
Si vous avez un tableau indexé numériquement où toutes les valeurs sont uniques (ou ils ne sont pas uniques, mais vous souhaitez supprimer toutes les occurrences de la valeur), vous pouvez simplement utiliser array_diff() pour supprimer un élément correspondant, comme ceci:
$my_array = array_diff($my_array, array('Value_to_remove'));
Par exemple:
$my_array = array('Andy', 'Bertha', 'Charles', 'Diana');
echo sizeof($my_array) . "\n";
$my_array = array_diff($my_array, array('Charles'));
echo sizeof($my_array);
Cela affiche les éléments suivants:
4
3
Dans cet exemple, l'élément avec la valeur "Charles" est supprimé peut être vérifié par le sizeof() appelle le rapport d'une taille de 4 pour le premier tableau, et 3 après l'enlèvement.
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.