Maison  >  Article  >  développement back-end  >  Comment supprimer les valeurs nulles en php

Comment supprimer les valeurs nulles en php

伊谢尔伦
伊谢尔伦original
2017-06-24 09:26:101083parcourir

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.

Le code est le suivant :

<?php   
$entry = array(   
           0 => &#39;foo&#39;,   
        1 => false,   
        2 => -1,   
        3 => null,   
        4 => &#39;&#39;  
       );   
print_r(array_filter($entry));   
?>

La valeur de sortie est :

Array   
(   
    [0] => foo   
    [2] => -1   
)

Il semble que j'ai encore besoin d'en lire plus manuels dans le futur... Comme array_slice est aussi une bonne chose. Dommage que je ne l'ai jamais remarqué auparavant.

Pièce jointe : Un autre exemple

$strDelCodes = "A;B;;C;;C;D;;;D;D";
$rsArray = array_values(array_unique(array_diff (split (";", $strDelCodes), array (""))));

Les valeurs stockées dans le tableau $rsArray sont : A B C D

la fonction array_values() renvoie un value contain Un tableau qui spécifie toutes les valeurs de clé du tableau, mais ne conserve pas les noms de clé.

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!

Déclaration:
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