現在の位置: ホーム> 最新記事一覧> is_integerとin_arrayは、配列に整数値を含むかどうかを決定できますか?

is_integerとin_arrayは、配列に整数値を含むかどうかを決定できますか?

gitbox 2025-09-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// この記事では使用しています PHP 書く,議論のために is_integer そして in_array 配列に整数値が含まれているかどうかを判断することは可能ですか。</span></span><span>

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

<span class="hljs-comment">/**
 * タイトル:is_integer そして in_array 配列に整数値が含まれているかどうかを確認できますか?
 *
 * 毎日の開発において,整数値が配列に存在するかどうかを多くする必要があります。現時点では,`in_array` これは、最も1つ般的に使用される関数の1つです,そして `is_integer` 多くの場合、可変タイプを判断するために使用されます。それで,`is_integer` そして `in_array` 配列に整数があるかどうかを判断するために組み合わせて使用​​できますか??それらの間に誤解はありますか?この記事では、1つずつ分析します。
 *
 * ## 1つ、is_integer の役割
 *
 * `is_integer(mixed $value): bool` 是1つ个用于判断变量是否のために整数类型的函数。它の役割是检查变量的数据类型是否严格のために整数(int),そして不是字符串形式的数字または浮点数。
 *
 * 例:
 * ```php
 * is_integer(5);        // true
 * is_integer("5");      // false
 * is_integer(5.0);      // false
 * ```
 *
 * それで `is_integer` 配列に値があるかどうかを判断するために使用されません,そして是用于类型判断。
 *
 * ## 二、in_array の役割及其陷阱
 *
 * `in_array(mixed $needle, array $haystack, bool $strict = false): bool` 是1つ个检查数组中是否存在某个值的函数。
 *
 * - 3番目のパラメーターの場合 `$strict` のために `false`(デフォルト),非厳格な比較を使用します,つまり、タイプ変換が許可されています。
 * - いつ `$strict` のために `true`,则要求类型そして值都必须相等。
 *
 * 例:
 * ```php
 * $arr = [1, "2", 3];
 * in_array(2, $arr);           // true(因のために "2" == 2)
 * in_array(2, $arr, true);     // false(因のために 2 !== "2")
 * in_array(1, $arr, true);     // true(因のために 1 === 1)
 * ```
 *
 * したがって,使用 `in_array` 配列に特定の値があるかどうかを効果的に決定できます,しかし、タイプが考慮されるかどうかは依存します `$strict` パラメーター。
 *
 * ## 三つ、それらを使用して、配列にあるかどうかを判断できますか?“整数値”?
 *
 * あなたの要件が配列があるかどうかを判断することである場合“包含1つ个整数类型的值”,そして不仅仅是某个值是“可转换のために整数”,それで应注意两点:
 *
 * 1. 使用 `in_array($value, $array, true)` タイプが整数であることを確認します。
 * 2. 配列で判断する必要がある場合“是否包含至少1つ个整数类型的值”,組み合わせることができます `is_integer` そして遍历实现。
 *
 * 例:检查数组中是否至少有1つ个整数类型值
 * ```php
 * $arr = [1, "2", 3.0, true];
 * $hasInt = false;
 * foreach ($arr as $item) {
 *     if (is_integer($item)) {
 *         $hasInt = true;
 *         break;
 *     }
 * }
 * var_dump($hasInt); // true,因のために 1 整数タイプです
 * ```
 *
 * ## 4、要約します
 *
 * - `is_integer` 用于判断某个变量是否整数タイプです,配列に特定の値が含まれているかどうかを判断するために直接使用することはできません。。
 * - `in_array` 配列に値があるかどうかを判断するために使用できます,しかし、設定されていない場合 `$strict` パラメーターのために `true`,タイプは自動的に変換される場合があります,不正確な判断を引き起こします。
 * - 配列に整数値があるかどうかを判断する,使用する必要があります `is_integer` 配位トラバーサル。
 *
 * **ベストプラクティス:**
 * 本当に判断したいのなら“数组中是否存在值のために某个整数,并且类型のために int”,これは行う必要があります:
 * ```php
 * in_array(5, $array, true);
 * ```
 * 判断を下したい場合“配列に整数型の値が含まれているかどうか”,使用できます:
 * ```php
 * array_filter($array, 'is_int');
 * ```
 * または:
 * ```php
 * $hasInt = (bool) array_filter($array, 'is_int');
 * ```
 *
 * これにより、値が判断されます,また、タイプの精度を保証します。
 */</span>
</span></span>