In PHP, arrays are a very commonly used data type, and the need to operate on arrays is also very frequent. Among them, deleting array elements is a common operation. This article will discuss the relevant knowledge and skills of deleting array elements in PHP.
1. Use the unset() function to delete array elements
PHP provides the unset() function to delete elements in the array. This function supports the deletion of single or multiple elements. For example, we have an array named $arr, and we can use the unset() function to delete one of its elements:
$arr = array('a', 'b', 'c', 'd'); // 定义数组 unset($arr[1]); // 删除 $arr[1] 元素
After the above code is executed, the 'b' element in the array $arr will be deleted.
If we need to delete multiple elements, we can pass in the index of multiple elements in the unset() function:
$arr = array('a', 'b', 'c', 'd'); // 定义数组 unset($arr[1], $arr[3]); // 删除 $arr[1] 和 $arr[3] 元素
After the above code is executed, 'b' and 'b' in the array $arr 'd' elements will be removed.
It should be noted that using the unset() function to delete an array element only marks the value of the element as undefined, that is, the element is not removed from the array. Therefore, after deleting an element, the array index will not be rearranged or moved, but the original index position will be retained. This is also the biggest difference from the unset() function.
2. Use the array_splice() function to delete array elements
Another way to delete array elements in PHP is to use the array_splice() function, which will remove the specified element from the array. , and returns a new array consisting of the removed elements. For example, we have the following array:
$arr = array('a', 'b', 'c', 'd');
If we need to delete the second element 'b', we can use the following code:
$new_arr = array_splice($arr, 1, 1);
In the above code, $arr is the original value we need to operate. Array, the second parameter 1 is the index position of the element that needs to be deleted, and the third parameter 1 is the number of elements that need to be deleted.
After executing the above code, the original array $arr will become ['a', 'c', 'd'], and the new array $new_arr will contain the deleted element 'b', that is, $ new_arr = ['b'].
It should be noted that, unlike the unset() function, the array_splice() function will rearrange the indexes of the remaining elements to fill the gaps left after the deleted elements. For example, we delete the 'b' and 'd' elements in the $arr array, the code is as follows:
$new_arr = array_splice($arr, 1, 2);
After executing the above code, the $arr array will become ['a', 'c'] , and the new array $new_arr is ['b', 'd'].
3. Use the array_diff() function to delete array elements
In addition to the above two methods, there is another method in PHP to use the array_diff() function to delete array elements. This function can be used to compare two arrays and return a new array consisting of elements contained in the first array but not in the other array. For example:
$arr = array('a', 'b', 'c', 'd'); $remove = array('b', 'd'); $new_arr = array_diff($arr, $remove);
In the above code, $arr is the original array we need to operate, the $remove array is the element that needs to be deleted from the $arr array, and the value of $new_arr is contained in $arr but Elements not included in $remove, that is, $new_arr = ['a', 'c'].
It should be noted that using the array_diff() function to delete array elements does not directly delete the elements, but copies the elements that meet the conditions to a new array, so the original array will not be affected. At the same time, you can also delete multiple elements using this method. You only need to pass the elements to be deleted into an array and pass it to the second parameter.
4. Delete elements of multi-dimensional arrays
The above methods can be used to delete elements in one-dimensional arrays, but for multi-dimensional arrays, we need to use some special techniques to delete elements. .
If we want to delete a specified element in a multi-dimensional array, we can use two loops to traverse the array, find the element that needs to be deleted, and use the unset() function to delete it, for example:
$arr = array( array('a', 'b', 'c'), array('d', 'e', 'f'), array('g', 'h', 'i') ); $remove_value = 'b'; foreach ($arr as $key1 => &$value1) { foreach ($value1 as $key2 => &$value2) { if ($value2 === $remove_value) { unset($value1[$key2]); } } }
In the above code, we traverse each element of the $arr array, use the $key1 and $key2 variables to record the current array index, compare each element with the element that needs to be deleted, find the element that needs to be deleted, and use unset () function deletes it.
It should be noted that in order to be able to delete elements in a multi-dimensional array, we need to use reference passing to operate the array elements. If you just use a foreach loop, modifying array elements inside the loop will fail.
Summary
Deleting array elements is a common operation in PHP. This article introduces the method of deleting array elements from three aspects: unset() function, array_splice() function and array_diff() function. Methods and techniques, and explains how to delete elements in a multi-dimensional array through the example of a multi-dimensional array. Mastering these knowledge and skills, we can operate arrays more flexibly and improve the efficiency of code writing.
The above is the detailed content of php array element delete. For more information, please follow other related articles on the PHP Chinese website!