Maison > Article > développement back-end > Explication détaillée de la façon de supprimer des instances de valeur nulle dans un tableau en PHP
Dans le passé, lors de la suppression de valeurs vides d'un tableau, foreach ou while étaient forcés d'utiliser ces deux structures syntaxiques pour supprimer des éléments vides dans le tableau. Le code simple est le suivant :
<?php foreach( $arr as $k=>$v){ if( !$v ) unset( $arr[$k] ); } ?>
Et je me sens plutôt bien, mais ce n'est pas très efficace. Je l'ai déjà essayé, en convertissant d'abord $arr en objet, puis en utilisant les caractéristiques de l'objet pour le supprimer, car. : foreach copie le tableau actuellement utilisé. Chaque fois que vous utilisez foreach, une variable est copiée s'il y en a trop sur la page, ce sera un gros gaspillage.
Lorsque je me promenais sur Internet, j'ai été surpris de voir quelqu'un suggérer d'utiliser array_filter. J'ai ouvert le manuel et j'y ai jeté un coup d'œil, et j'ai découvert que j'avais gardé une montagne au trésor mais que je ne savais pas comment l'utiliser. La fonction de la fonction
array_filter est d'utiliser la fonction de rappel pour filtrer le tableau. J'ai toujours pensé qu'elle ne pouvait être traitée que par la fonction de rappel, mais je n'ai pas trouvé cela. il y a une phrase ci-dessous dans le manuel. S'il n'y a pas de fonction de rappel, alors la valeur par défaut est de supprimer les éléments avec une fausse valeur dans le tableau.
<?php $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' ); print_r(array_filter($entry)); ?>
La valeur de sortie est :
Array ( [0] => foo [2] => -1 )
Il semble que j'ai encore besoin de lire davantage le manuel à l'avenir... Tout comme array_slice l'est aussi une bonne chose. Dommage que je ne l'ai jamais remarqué auparavant.
Pièce jointe : Autre exemple
Copiez le codeLe code est le suivant :
$strDelCodes = "A;B;;C;;C;D;;;D;D"; $rsArray = array_values(array_unique(array_diff (split (";", $strDelCodes), array (""))));
La valeur stockée dans la fonction array $rsArray For: A B C D
array_values() renvoie un tableau contenant toutes les valeurs clés du tableau donné, mais ne conserve pas les noms de clés.
La fonction array_diff() renvoie le tableau de différence de deux tableaux. Ce tableau contient toutes les clés qui se trouvent dans le tableau comparé, mais ne figurent dans aucun des autres tableaux d'arguments. La fonction
array_unique() supprime les valeurs en double d'un tableau et renvoie le tableau résultant. Lorsque les valeurs de plusieurs éléments du tableau sont égales, seul le premier élément est conservé et les autres éléments sont supprimés.
Les noms de clés dans le tableau renvoyé restent inchangés. La fonction
array_merge() fusionne deux ou plusieurs tableaux en un seul tableau.
S'il y a des noms de clé en double, la valeur de clé de la clé sera la valeur correspondant au dernier nom de clé (le dernier écrasera le précédent). Si le tableau est indexé numériquement, les noms de clés sont réindexés consécutivement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!