Maison > développement back-end > tutoriel php > Explication détaillée de la façon de supprimer des instances de valeur nulle dans un tableau en PHP

Explication détaillée de la façon de supprimer des instances de valeur nulle dans un tableau en PHP

伊谢尔伦
Libérer: 2023-03-11 09:44:01
original
1250 Les gens l'ont consulté

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] );   
}   
?>
Copier après la connexion

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 => &#39;foo&#39;,   
             1 => false,   
             2 => -1,   
             3 => null,   
             4 => &#39;&#39;  
          );   
print_r(array_filter($entry));   
?>
Copier après la connexion

La valeur de sortie est :

Array   
(   
    [0] => foo   
    [2] => -1   
)
Copier après la connexion

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 (""))));
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal