Is it possible for php to return an array specification?
For beginners, PHP's array is a very important data structure. During development, we often need to return an array, but in some cases, we only need certain items in this array. So, does PHP have a corresponding method that allows us to return only the specified items in the array?
The answer is yes. This article will introduce two PHP functions: array_filter() and array_map(), both of which can return specified items in an array.
array_filter() function
The array_filter() function is a built-in function in PHP. It is used to filter elements in an array that do not meet specific conditions and return elements that meet the conditions. We can use the callback function argument of this function to return an array with the array values we want.
The following is an example:
<?php $arr = [ 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ]; // 只返回 name 和 age $result = array_filter($arr, function($key) { if ($key == 'name' || $key == 'age') { return true; } return false; }, ARRAY_FILTER_USE_KEY); print_r($result); ?>
In this example, we use the array_filter() function, which will only return the name and age items in the array. The second parameter of the function is a callback function that receives the key name in the array as a parameter and returns a Boolean value. If true, this element will be included; if false, this element will not be included. The parameter ARRAY_FILTER_USE_KEY indicates that we are passing the key name, not the key value.
If you want to return multiple filtered key-value pairs, you can use the following code:
<?php $arr = [ 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ]; // 只返回 name 和 age $result = array_filter($arr, function($value, $key) { if ($key == 'name' || $key == 'age') { return true; } return false; }, ARRAY_FILTER_USE_BOTH); print_r($result); ?>
This example is very similar to the above example, but it passes both the key name and the key value to the callback Function that allows us to compare key names and key values to return multiple key-value pairs.
array_map() function
array_map() function is also a built-in function of PHP. It accepts one or more arrays and returns a new array in which each element is each original array. The processing result of the corresponding element in . We can use this function to return an array with the keys we want instead of the entire array.
The following is an example:
<?php $arr = [ 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ]; // 只返回 name 和 age $filtered_keys = ['name', 'age']; $result = array_map(function($key) use ($arr) { return $arr[$key]; }, $filtered_keys); print_r($result); ?>
In this example, we use the array_map() function to return an array including only name and age. The second parameter of the function is an array containing the required keys. We use the callback function of array_map() to get the value of each key and pass the original array using the use keyword.
It should be noted that if we are not sure which items to return, or the number of items can change over time, we should use the array_filter() function. And if we already know which items to return, or the number of items is known, we can use the array_map() function.
Summary
In PHP, we can use the array_filter() and array_map() functions to return specified items in an array. They can all filter or reconstruct the array through callback functions to return the results we want. We can choose which function to use, depending on which items we need to return, and whether the number of items is fixed.
The above is the detailed content of Is it possible to specify the array returned by php?. For more information, please follow other related articles on the PHP Chinese website!