Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie die Funktion array_filter in PHP, um Arrays basierend auf der Rückruffunktion zu filtern

So verwenden Sie die Funktion array_filter in PHP, um Arrays basierend auf der Rückruffunktion zu filtern

PHPz
PHPzOriginal
2023-06-26 13:34:03862Durchsuche

In der webbasierten Entwicklung ist PHP aufgrund seiner Einfachheit und Flexibilität eine weit verbreitete Sprache. PHP kann eine Vielzahl von Aufgaben bewältigen, einschließlich der Bearbeitung von Arrays und der Filterung von Array-Elementen. In PHP gibt es mehrere Funktionen, die Array-Elemente filtern können. Eine der leistungsstärksten Funktionen ist die Funktion array_filter. Diese Funktion ist sehr nützlich, da sie die Elemente des Arrays basierend auf einer bestimmten Rückruffunktion filtern kann und nur Elemente behält, die die Bedingungen erfüllen. Als nächstes besprechen wir im Detail, wie man die Funktion array_filter in PHP zum Filtern von Arrays verwendet. Die Syntax für die Verwendung der Funktion 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 lautet wie folgt: 🎜rrreee🎜Der erste Parameter: das zu filternde Array. 🎜🎜Zweiter Parameter (optional): Rückruffunktion, mit der Array-Elemente gemäß Ihren eigenen Bedingungen getestet werden. Wenn dieser Parameter nicht angegeben ist, werden nur Elemente entfernt, die FALSE entsprechen. 🎜🎜Der dritte Parameter (optional): Flag, mit dem das Verhalten der Rückruffunktion festgelegt wird. Folgende Flags können ausgewählt werden: 🎜
  • ARRAY_FILTER_USE_KEY – Übergeben Sie den Schlüsselnamen anstelle des Werts an die Callback-Funktion.
  • ARRAY_FILTER_USE_BOTH – Übergeben Sie den Wert und den Schlüsselnamen an die Rückruffunktion.
🎜Hinweis: Die Funktion array_filter ändert nicht das ursprüngliche Array, sondern gibt ein neues gefiltertes Array zurück. 🎜🎜Als nächstes zeigen wir einige Beispiele für die Verwendung der Funktion array_filter. 🎜

Beispiel 1

rrreee🎜Das laufende Ergebnis ist: 🎜rrreee🎜In diesem Beispiel definieren wir eine testFilter-Rückruffunktion, die testet, ob das Array-Element zwischen 2 und 6 liegt Zimmer (außer 2 und 6). Anschließend übergeben wir diese Funktion an die Funktion array_filter mit dem zu verarbeitenden Array als erstem Argument. Das neue Array $b enthält nur Elemente, die die Bedingungen erfüllen, also 3, 4 und 5. In diesem Beispiel verwenden wir eine Filter-Callback-Funktion. Der Funktionsname wird als Zeichenfolge an die Funktion array_filter übergeben. 🎜

Beispiel 2

rrreee🎜Das laufende Ergebnis ist: 🎜rrreee🎜In diesem Beispiel haben wir eine testFilter2-Rückruffunktion definiert und ARRAY_FILTER_USE_BOTH Flags verwendet, um den Schlüsselnamen zu übergeben und Wertargumente für die Callback-Funktion. In diesem Beispiel gibt die Rückruffunktion nur Elemente zurück, deren Schlüsselname und -wert größer als 2 sind. Das in diesem Beispiel zurückgegebene gefilterte Array enthält nur die Elemente „c“, „d“ und „e“. 🎜

Beispiel 3

rrreee🎜Das laufende Ergebnis ist: 🎜rrreee🎜In diesem Beispiel definieren wir eine testFilter3-Rückruffunktion, die verwendet wird, um zu bestimmen, ob der Wert mit der leeren Zeichenfolge übereinstimmt , NULL oder FALSE entspricht dem Filtern von Array-Elementen. In diesem Beispiel enthält das neue Array $b nur Elemente aus dem ursprünglichen Array, die nicht leer, NULL oder FALSE sind. 🎜🎜Zusammenfassung: 🎜🎜Die Funktion array_filter ist eine sehr nützliche Funktion in der PHP-Array-Verarbeitungsfunktion. Sie kann zum Filtern vorhandener Arrays verwendet werden, um nach einer bedingten Prüfung ein Array aus Elementen zu erstellen. In diesem Artikel haben wir Beispiele für verschiedene Anwendungsfälle bereitgestellt, die Ihnen helfen können, die Funktion und ihre Verwendung besser zu verstehen. So können Sie Arrays schneller filtern und Array-Elemente in PHP kategorisieren. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion array_filter in PHP, um Arrays basierend auf der Rückruffunktion zu filtern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn