Maison > Article > développement back-end > Comment vérifier efficacement les tableaux contenant uniquement des nombres entiers en PHP ?
Une façon de vérifier si un tableau contient exclusivement des entiers consiste à effectuer une itération manuelle et la fonction is_int(). Cependant, une approche plus efficace utilise la fonctionnalité PHP native :
array_filter() conserve les éléments d'un tableau qui répondent à une condition spécifiée. L'appliquer avec is_int() comme prédicat produit directement un tableau filtré :
<code class="php">$only_integers = array_filter($only_integers, 'is_int'); // true $letters_and_numbers = array_filter($letters_and_numbers, 'is_int'); // false</code>
Cette approche peut être complétée par des fonctions d'assistance réutilisables :
<code class="php">/** * Verify all elements of an array satisfy a given predicate. * * @param array $elems Array to evaluate * @param callable $predicate Predicate to apply * @return bool TRUE if all elements pass, FALSE otherwise */ function all($elems, $predicate) { foreach ($elems as $elem) { if (!call_user_func($predicate, $elem)) { return false; } } return true; } /** * Verify any element of an array satisfies a given predicate. * * @param array $elems Array to evaluate * @param callable $predicate Predicate to apply * @return bool TRUE if any element passes, FALSE otherwise */ function any($elems, $predicate) { foreach ($elems as $elem) { if (call_user_func($predicate, $elem)) { return true; } } return false; }</code>
En employant ces fonctions d'assistance, le code original peut être simplifié :
<code class="php">$has_only_ints = all($only_integers, 'is_int'); // true $has_only_ints = all($letters_and_numbers, 'is_int'); // false</code>
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!