Maison >développement back-end >tutoriel php >Comment utiliser la fonction array_filter en PHP pour filtrer les tableaux en fonction de la fonction de rappel

Comment utiliser la fonction array_filter en PHP pour filtrer les tableaux en fonction de la fonction de rappel

PHPz
PHPzoriginal
2023-06-26 13:34:03890parcourir

Dans le développement Web, PHP est un langage largement utilisé en raison de sa simplicité et de sa flexibilité. PHP peut gérer une grande variété de tâches, notamment la manipulation de tableaux et le filtrage des éléments d'un tableau. En PHP, il existe plusieurs fonctions permettant de filtrer les éléments d'un tableau. L'une des fonctions les plus puissantes est la fonction array_filter. Cette fonction est très utile car elle peut filtrer les éléments du tableau en fonction d'une fonction de rappel spécifique et ne conserver que les éléments qui remplissent les conditions. Ensuite, nous verrons en détail comment utiliser la fonction array_filter en PHP pour filtrer les tableaux. La syntaxe d'utilisation de la fonction array_filter函数。这个函数非常有用,因为它可以根据特定的回调函数,对数组的元素进行过滤,只保留符合条件的元素。接下来,我们将详细讨论PHP中如何使用array_filter函数来过滤数组。

array_filter函数的使用语法如下:

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

第一个参数:待过滤的数组。

第二个参数(可选):回调函数,用于根据自己的条件测试数组元素。如果不指定此参数,则仅删除等效于FALSE的元素。

第三个参数(可选):标志,用于设定回调函数的行为。可以选择以下标志:

  • ARRAY_FILTER_USE_KEY - 传递键名而不是值给回调函数。
  • ARRAY_FILTER_USE_BOTH - 传递值和键名给回调函数。

注意:array_filter函数不会修改原始数组,而是返回一个新的过滤数组。

接下来,我们将通过一些示例来展示如何使用array_filter函数。

示例一

<?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函数。

示例二

<?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”元素。

示例三

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

array_filter est la suivante : 🎜rrreee🎜Le premier paramètre : le tableau à filtrer. 🎜🎜Deuxième paramètre (facultatif) : fonction de rappel, utilisée pour tester les éléments du tableau selon vos propres conditions. Si ce paramètre n'est pas précisé, seuls les éléments équivalents à FALSE sont supprimés. 🎜🎜Le troisième paramètre (facultatif) : flag, utilisé pour définir le comportement de la fonction de rappel. Les indicateurs suivants peuvent être sélectionnés : 🎜
  • ARRAY_FILTER_USE_KEY - Transmettez le nom de la clé au lieu de la valeur à la fonction de rappel.
  • ARRAY_FILTER_USE_BOTH - Transmettez la valeur et le nom de la clé à la fonction de rappel.
🎜Remarque : La fonction array_filter ne modifie pas le tableau d'origine, mais renvoie un nouveau tableau filtré. 🎜🎜Ensuite, nous montrerons quelques exemples d'utilisation de la fonction array_filter. 🎜

Exemple 1

rrreee🎜Le résultat en cours d'exécution est : 🎜rrreee🎜Dans cet exemple, nous définissons une fonction de rappel testFilter, qui testera si l'élément du tableau est compris entre 2 et 6. chambres (hors 2 et 6). On passe ensuite cette fonction à la fonction array_filter avec le tableau à traiter comme premier paramètre. Le nouveau tableau $b contient uniquement les éléments qui remplissent les conditions, c'est-à-dire 3, 4 et 5. Dans cet exemple, nous utilisons une fonction de rappel de filtre, le nom de la fonction est transmis sous forme de chaîne à la fonction array_filter. 🎜

Exemple 2

rrreee🎜Le résultat en cours d'exécution est : 🎜rrreee🎜Dans cet exemple, nous avons défini une fonction de rappel testFilter2 et utilisé ARRAY_FILTER_USE_BOTH Flags pass keyname et les paramètres de valeur à la fonction de rappel. Dans cet exemple, la fonction de rappel ne renverra que les éléments dont le nom de clé et la valeur sont supérieurs à 2. Le tableau filtré renvoyé dans cet exemple contient uniquement les éléments « c », « d » et « e ». 🎜

Exemple 3

rrreee🎜Le résultat en cours d'exécution est : 🎜rrreee🎜Dans cet exemple, nous définissons une fonction de rappel testFilter3, qui est utilisée pour déterminer si la valeur correspond à la chaîne vide , NULL ou FALSE équivalent au filtre des éléments du tableau. Dans cet exemple, le nouveau tableau $b contient uniquement les éléments du tableau d'origine qui ne sont pas vides, NULL ou FALSE. 🎜🎜Résumé : La fonction 🎜🎜array_filter est une fonction très utile dans la fonction de traitement de tableau PHP. Elle peut être utilisée pour filtrer des tableaux existants afin de créer un tableau composé d'éléments après vérification conditionnelle. Dans cet article, nous avons fourni des exemples de différents cas d'utilisation qui peuvent vous aider à mieux comprendre la fonction et son utilisation, ce qui vous aidera à filtrer les tableaux plus rapidement et à catégoriser les éléments du tableau en PHP. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn