ホームページ  >  記事  >  バックエンド開発  >  PHP で整数のみの配列を効率的に検証するにはどうすればよいですか?

PHP で整数のみの配列を効率的に検証するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-17 14:00:05369ブラウズ

How to Efficiently Verify Integer-Only Arrays in PHP?

PHP を使用した整数のみの配列の検証

配列に整数のみが含まれているかどうかを確認する 1 つの方法は、手動反復と is_int() 関数を使用することです。ただし、より効率的なアプローチでは、ネイティブ PHP 機能を利用します。

array_filter() の使用

array_filter() は、指定された条件を満たす配列の要素を維持します。 is_int() を述語として適用すると、フィルタリングされた配列が直接生成されます。

<code class="php">$only_integers = array_filter($only_integers, 'is_int'); // true
$letters_and_numbers = array_filter($letters_and_numbers, 'is_int'); // false</code>

再利用可能なヘルパー関数の採用

このアプローチは、再利用可能なヘルパー関数で拡張できます。

<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>

これらのヘルパー関数を使用すると、元のコードを簡素化できます:

<code class="php">$has_only_ints = all($only_integers, 'is_int'); // true
$has_only_ints = all($letters_and_numbers, 'is_int'); // false</code>

以上がPHP で整数のみの配列を効率的に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。