Dans PHP, la fonction Array_Filter () est utilisée pour filtrer les éléments dans un tableau et déterminer s'il faut conserver l'élément en fonction de la fonction de rappel spécifiée. Si aucune fonction de rappel n'est spécifiée, Array_Filter () utilisera la fonction de rappel par défaut pour filtrer le tableau, qui supprimera les éléments considérés comme "Faux Valeurs". "Faux Valeurs" dans PHP Inclut: False , Null , 0 , "" (String vide), Array () (Vide Array) et 0.0 .
Par conséquent, lorsque vous utilisez array_filter () en php, si la valeur de l'élément dans le tableau est 0 , elle sera considérée comme une fausse valeur et sera supprimée. Pour mieux comprendre ce problème, nous pouvons utiliser un exemple concret pour montrer le comportement de Array_Filter () .
<?php
$array = [0, 1, 2, 3, 0, 4, 5, 0];
$filtered = array_filter($array);
print_r($filtered);
?>
Sortir:
Array
(
[1] => 1
[2] => 2
[3] => 3
[5] => 4
[6] => 5
)
Dans le code ci-dessus, nous créons un tableau contenant plusieurs entiers, contenant plusieurs 0 éléments. Lorsque nous utilisons array_filter () , tous les éléments avec une valeur de 0 sont supprimés car 0 est considéré comme une fausse valeur.
En effet, le comportement par défaut de la fonction array_filter () consiste à supprimer tous les éléments considérés comme des "fausses valeurs" du tableau. Les règles de conversion de type de PHP déterminent que 0 est une fausse valeur. Plus précisément, 0 est converti en false et provoque une fausse array_filter () pour supprimer l'élément.
Si vous souhaitez conserver des éléments avec une valeur de 0 , vous pouvez le faire en fournissant une fonction de rappel personnalisée. Par exemple:
<?php
$array = [0, 1, 2, 3, 0, 4, 5, 0];
$filtered = array_filter($array, function($value) {
return $value === 0 || $value > 0;
});
print_r($filtered);
?>
Sortir:
Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[5] => 4
[6] => 5
[7] => 0
)
Dans cet exemple, nous utilisons une fonction de rappel personnalisée pour nous assurer que l'élément avec une valeur de 0 est conservé, tandis que les autres éléments sont filtrés en fonction de notre logique.
Lorsque vous utilisez array_filter () , les éléments avec une valeur de 0 sont supprimés car PHP traite 0 comme une fausse valeur. En l'absence d'une fonction de rappel, Array_Filter () supprimera automatiquement ces fausses valeurs. Si vous devez conserver 0 ou d'autres valeurs spécifiques, vous pouvez fournir une fonction de rappel personnalisée pour contrôler le comportement de filtrage.
Étiquettes associées:
array_filter