Home>Article>Backend Development> How to use array_filter function in PHP to filter arrays based on callback function

How to use array_filter function in PHP to filter arrays based on callback function

PHPz
PHPz Original
2023-06-26 13:34:03 765browse

In web-based development, PHP is a widely used language because of its simplicity and flexibility. PHP can handle a wide variety of tasks, including manipulating arrays and filtering array elements. In PHP, there are several functions that can filter array elements, one of the most powerful functions is thearray_filterfunction. This function is very useful because it can filter the elements of the array based on a specific callback function and only retain elements that meet the conditions. Next, we will discuss in detail how to use thearray_filterfunction in PHP to filter arrays.

array_filterThe syntax for using the function is as follows:

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

The first parameter: the array to be filtered.

Second parameter (optional): callback function, used to test array elements according to your own conditions. If this parameter is not specified, only elements equivalent to FALSE are removed.

The third parameter (optional): flag, used to set the behavior of the callback function. The following flags can be selected:

  • ARRAY_FILTER_USE_KEY - Pass the key name instead of the value to the callback function.
  • ARRAY_FILTER_USE_BOTH - Pass the value and key name to the callback function.

Note:array_filterThe function does not modify the original array, but returns a new filtered array.

Next, we will show how to use thearray_filterfunction through some examples.

Example 1

 2 && $value < 6); } $a = array(1, 2, 3, 4, 5, 6); $b = array_filter($a, "testFilter"); var_dump($b); ?>

The running result is:

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

In this example, we define atestFiltercallback function, which will test the array elements Whether it is between 2 and 6 (excluding 2 and 6). We then pass this function to thearray_filterfunction with the array we need to process as the first argument. The new array$bonly contains elements that meet the conditions, that is, 3, 4, and 5. In this example we use a filter callback function, the function name is passed as a string to thearray_filterfunction.

Example 2

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

The running result is:

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

In this example, we defined atestFilter2callback function and usedARRAY_FILTER_USE_BOTHFlag passes the key name and value parameters to the callback function. In this example, the callback function will only return elements whose key name and value are greater than 2. The filtered array returned in this example contains only "c", "d" and "e" elements.

Example 3

The running result is:

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

In this example, we define atestFilter3callback function, which is used to determine the value based on the value. Whether equivalent to empty string, NULL or FALSE to filter array elements. In this example, the new array$bonly contains elements from the original array that are not empty, NULL, or FALSE.

Summary:

array_filterfunction is a very useful function in PHP array processing function, which can be used to filter existing arrays to create an array checked by conditions An array composed of the following elements. In this article, we have provided examples for different use cases that can help you better understand the function and its usage, which will help you filter arrays faster and categorize array elements in PHP.

The above is the detailed content of How to use array_filter function in PHP to filter arrays based on callback function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn