ホームページ >バックエンド開発 >PHPチュートリアル >PHP で array_filter 関数を使用してコールバック関数に基づいて配列をフィルタリングする方法

PHP で array_filter 関数を使用してコールバック関数に基づいて配列をフィルタリングする方法

PHPz
PHPzオリジナル
2023-06-26 13:34:03862ブラウズ

Web ベースの開発では、PHP はそのシンプルさと柔軟性により広く使用されている言語です。 PHP は、配列の操作や配列要素のフィルタリングなど、さまざまなタスクを処理できます。 PHP には、配列要素をフィルタリングできる関数がいくつかあります。最も強力な関数の 1 つは array_filter 関数です。この関数は、特定のコールバック関数に基づいて配列の要素をフィルターし、条件を満たす要素のみを保持できるため、非常に便利です。次に、PHP の array_filter 関数を使用して配列をフィルタリングする方法について詳しく説明します。

array_filter関数を使用するための構文は次のとおりです。

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

最初のパラメータ: フィルタリングされる配列。

2 番目のパラメータ (オプション): 独自の条件に従って配列要素をテストするために使用されるコールバック関数。このパラメータを指定しない場合は、FALSE に相当する要素のみが削除されます。

3 番目のパラメータ (オプション): コールバック関数の動作を設定するために使用されるフラグ。次のフラグを選択できます。

  • ARRAY_FILTER_USE_KEY - 値の代わりにキー名をコールバック関数に渡します。
  • ARRAY_FILTER_USE_BOTH - 値とキー名をコールバック関数に渡します。

注: array_filter関数は元の配列を変更しませんが、新しいフィルター処理された配列を返します。

次に、array_filter 関数の使用方法をいくつかの例で示します。

例 1

<?php
function testFilter($value) {
    return($value > 2 && $value < 6);
}

$a = array(1, 2, 3, 4, 5, 6);
$b = array_filter($a, "testFilter");

var_dump($b);
?>

実行結果は次のとおりです:

array(3) {
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}

この例では、配列要素をテストする testFilter コールバック関数を定義します。 2から6の間かどうか(2と6は除く)。次に、処理する必要がある配列を最初のパラメーターとして指定して、この関数を array_filter 関数に渡します。新しい配列 $b には、条件を満たす要素 (3、4、および 5) のみが含まれます。この例では、フィルター コールバック関数を使用し、関数名が文字列として array_filter 関数に渡されます。

例 2

<?php
function testFilter2($key, $value) {
    return($key > 2 && $value > 2);
}

$a = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$b = array_filter($a, "testFilter2", ARRAY_FILTER_USE_BOTH);

var_dump($b);
?>

実行結果は次のとおりです:

array(3) {
  ["c"]=>
  int(3)
  ["d"]=>
  int(4)
  ["e"]=>
  int(5)
}

この例では、testFilter2 コールバック関数を定義し、ARRAY_FILTER_USE_BOTH# を使用しました。 ## フラグは、キーの名前と値のパラメーターをコールバック関数に渡します。この例では、コールバック関数は、キー名と値が 2 より大きい要素のみを返します。この例で返されるフィルター処理された配列には、「c」、「d」、および「e」要素のみが含まれます。

例 3

<?php
function testFilter3($value) {
    return $value !== '' && $value !== null && $value !== false;
}

$a = array("a", "", "b", null, "c", false);
$b = array_filter($a, "testFilter3");

var_dump($b);
?>

実行結果は次のとおりです:

array(3) {
  [0]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [4]=>
  string(1) "c"
}

この例では、

testFilter3 コールバック関数を定義します。値に基づく値。配列要素をフィルタリングするための空の文字列、NULL、または FALSE と同等かどうか。この例では、新しい配列 $b には、空、NULL、または FALSE ではない元の配列の要素のみが含まれています。

概要:

array_filter 関数は、PHP の配列処理関数で非常に便利な関数で、既存の配列をフィルタリングして、条件によってチェックされる配列を作成するために使用できます。以下の要素から構成されます。この記事では、関数とその使用法をより深く理解するのに役立つさまざまなユースケースの例を提供しました。これは、PHP で配列をより迅速にフィルターし、配列要素を分類するのに役立ちます。

以上がPHP で array_filter 関数を使用してコールバック関数に基づいて配列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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