Position actuelle: Accueil> Derniers articles> Is_Integer et IN_ARRAY déterminer si le tableau contient des valeurs entières?

Is_Integer et IN_ARRAY déterminer si le tableau contient des valeurs entières?

gitbox 2025-09-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cet article utilise PHP écrire,Pour discussion is_integer et in_array Est-il possible de déterminer si un tableau contient des valeurs entières。</span></span><span>

</span><span><span class="hljs-comment">// ----------------------------------------------</span></span><span>

<span class="hljs-comment">/**
 * titre:is_integer et in_array Pouvez-vous dire si le tableau contient des valeurs entières?
 *
 * En développement quotidien,Nous devons souvent déterminer s&#39;il existe une valeur entière dans un tableau。à ce moment-là,`in_array` C&#39;est l&#39;une des fonctions les plus couramment utilisées,et `is_integer` Il est souvent utilisé pour juger des types variables。Donc,`is_integer` et `in_array` Peut-il être utilisé en combinaison pour déterminer s&#39;il y a des entiers dans le tableau??Y a-t-il un malentendu entre eux?Cet article analysera un par un。
 *
 * ## un、is_integer Le rôle de
 *
 * `is_integer(mixed $value): bool` 是un个用于判断变量是否pour整数类型的函数。它Le rôle de是检查变量的数据类型是否严格pour整数(int),et不是字符串形式的数字ou浮点数。
 *
 * Exemple:
 * ```php
 * is_integer(5);        // true
 * is_integer("5");      // false
 * is_integer(5.0);      // false
 * ```
 *
 * donc `is_integer` Il n&#39;est pas utilisé pour déterminer s&#39;il y a une valeur dans le tableau,et是用于类型判断。
 *
 * ## deux、in_array Le rôle de及其陷阱
 *
 * `in_array(mixed $needle, array $haystack, bool $strict = false): bool` 是un个检查数组中是否存在某个值的函数。
 *
 * - Lorsque le troisième paramètre `$strict` pour `false`(défaut),Utilisera une comparaison non stricte,C&#39;est-à-dire que la conversion de type est autorisée。
 * - quand `$strict` pour `true`,则要求类型et值都必须相等。
 *
 * Exemple:
 * ```php
 * $arr = [1, "2", 3];
 * in_array(2, $arr);           // true(因pour "2" == 2)
 * in_array(2, $arr, true);     // false(因pour 2 !== "2")
 * in_array(1, $arr, true);     // true(因pour 1 === 1)
 * ```
 *
 * donc,utiliser `in_array` Il peut déterminer efficacement s&#39;il y a une certaine valeur dans le tableau,Mais si le type est considéré dépend de `$strict` paramètre。
 *
 * ## trois、Pouvez-vous les utiliser pour déterminer s&#39;il y en a dans le tableau?“Valeur entière”?
 *
 * Si votre exigence est de déterminer si le tableau est“包含un个整数类型的值”,et不仅仅是某个值是“可转换pour整数”,Donc应注意两点:
 *
 * 1. utiliser `in_array($value, $array, true)` Pour s&#39;assurer que le type est un entier。
 * 2. Si vous devez juger dans le tableau“是否包含至少un个整数类型的值”,Peut être combiné `is_integer` et遍历实现。
 *
 * Exemple:检查数组中是否至少有un个整数类型值
 * ```php
 * $arr = [1, "2", 3.0, true];
 * $hasInt = false;
 * foreach ($arr as $item) {
 *     if (is_integer($item)) {
 *         $hasInt = true;
 *         break;
 *     }
 * }
 * var_dump($hasInt); // true,因pour 1 C&#39;est un type entier
 * ```
 *
 * ## Quatre、Résumer
 *
 * - `is_integer` 用于判断某个变量是否C&#39;est un type entier,Il ne peut pas être utilisé directement pour déterminer si un tableau contient une certaine valeur.。
 * - `in_array` Peut être utilisé pour déterminer s&#39;il y a une valeur dans le tableau,Mais si ce n&#39;est pas réglé `$strict` paramètrepour `true`,Les types peuvent être automatiquement convertis,Provoque un jugement inexact。
 * - Pour déterminer s&#39;il y a une valeur entière dans le tableau,应utiliser `is_integer` Traversement de la coordination。
 *
 * **Meilleures pratiques:**
 * Si vous voulez vraiment juger“数组中是否存在值pour某个整数,并且类型pour int”,Cela devrait être fait:
 * ```php
 * in_array(5, $array, true);
 * ```
 * Si vous voulez porter un jugement“Si le tableau contient des valeurs de tout type entier”,Peut être utilisé:
 * ```php
 * array_filter($array, 'is_int');
 * ```
 * ou:
 * ```php
 * $hasInt = (bool) array_filter($array, 'is_int');
 * ```
 *
 * Cela garantit que la valeur est jugée,Il garantit également la précision du type。
 */</span>
</span></span>