Home  >  Article  >  Backend Development  >  php removes values ​​from two-dimensional array

php removes values ​​from two-dimensional array

WBOY
WBOYOriginal
2023-05-11 10:14:36486browse

In PHP, arrays are a frequently used data type, and two-dimensional arrays are more common. A two-dimensional array can be understood as an array containing other arrays, that is, each element in an array is an array. In some cases, we need to delete an element from a two-dimensional array or filter out certain values. This article will introduce how to remove values ​​from a two-dimensional array.

Let’s first look at a simple two-dimensional array. Suppose this is a list of students, which contains the name and age of each student:

$students = array(
    array("name" => "张三", "age" => 20),
    array("name" => "李四", "age" => 21),
    array("name" => "王五", "age" => 22),
    array("name" => "赵六", "age" => 23)
);

Now we need to add the student who is 22 years old Removed from list. This can be achieved by looping through the array:

foreach ($students as $key => $student) {
    if ($student["age"] == 22) {
        unset($students[$key]);
    }
}

The foreach loop is used here to traverse the information of each student. If the student's age is equal to 22 years old, use unset The function deletes the student from the array.

In this example, we use the $key variable to record the index of the current student, and then use the unset function to delete the student corresponding to the index. It should be noted that when deleting array elements, the index values ​​​​of the array will not be reordered in order, so it is best to use a foreach loop to traverse the array.

In addition to using the unset function, you can also use PHP's built-in array_filter function to filter the values ​​in the array. For example, we can use the following code to filter out all ages For 22-year-old students:

$students = array_filter($students, function($student) {
    return $student["age"] != 22;
});

An anonymous function is used here as the second parameter of the array_filter function, which receives a student data and filters it based on the student's age. If the student's age is not equal to 22 years old, it returns true, otherwise it returns false, and the array_filter function will return the value true Elements are retained, and elements with a return value of false are filtered out.

In addition to using the array_filter function, you can also use the array_reduce function to implement the filtering function. array_reduceThe function receives three parameters: the array to be processed, a callback function and the initial value. The callback function receives two parameters: each array element and the result of the previous callback, and then returns the result of the next callback. For example, the following code uses the array_reduce function to filter students who are 22 years old:

$students = array_reduce($students, function($result, $student) {
    if ($student["age"] != 22) {
        $result[] = $student;
    }
    return $result;
}, array());

An anonymous function is used here as a callback function. The function first determines whether the student's age is equal to 22 years old. , if not equal, add the student to the result array, and finally return the result array. array_reduceThe function passes each student data to the callback function for processing, and finally returns the filtered result array.

In short, PHP provides many methods to process arrays, including removing elements from the array or filtering out certain values. In addition to the methods mentioned above, there are many other PHP built-in functions that can be used. For different scenarios and needs, different methods can be selected according to the actual situation.

The above is the detailed content of php removes values ​​from two-dimensional array. 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