Optimisation de la vérification des entiers d'un tableau avec des fonctions PHP natives
Vérifier qu'un tableau ne contient que des entiers est une tâche courante. Bien que parcourir le tableau et examiner le type de chaque élément puisse être une approche simple, PHP propose des alternatives plus concises.
Une de ces solutions utilise la fonction array_filter, qui prend un tableau et une fonction d'évaluation comme arguments. Dans notre cas, nous passons is_int comme fonction d'évaluation. Si tous les éléments du tableau renvoient vrai lorsqu'ils sont passés à is_int, cela implique que le tableau ne contient que des entiers. À l'inverse, si un élément renvoie faux, la présence de données non numériques est confirmée.
<code class="php">$only_integers === array_filter($only_integers, 'is_int'); // true $letters_and_numbers === array_filter($letters_and_numbers, 'is_int'); // false</code>
Pour rationaliser davantage ce processus, nous pouvons définir deux fonctions d'assistance : all et any. all vérifie si tous les éléments d'un tableau satisfont à un prédicat donné, tandis que any vérifie si un élément remplit la condition.
<code class="php">function all($elems, $predicate) { foreach ($elems as $elem) { if (!call_user_func($predicate, $elem)) { return false; } } return true; } function any($elems, $predicate) { foreach ($elems as $elem) { if (call_user_func($predicate, $elem)) { return true; } } return false; }</code>
En utilisant any et is_int, nous pouvons exprimer de manière concise la logique de vérification des entiers :
<code class="php">any($array, 'is_int');</code>
Si le résultat est vrai, cela signifie que le tableau contient au moins un élément non entier ; sinon, cela confirme que tous les éléments sont des entiers.
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!