Home >Backend Development >PHP Problem >How to delete multiple array elements in php
In PHP, deleting array elements is a common task. Normally, we only need to delete an array element, and we can use the unset() function to operate. However, if you want to delete multiple array elements, you need something different.
This article will introduce how to use different methods to delete multiple array elements.
Method 1: Use unset and foreach loops
This is one of the most common ways. You can use a foreach loop to iterate through all the array key values to be deleted and use the unset() function to delete them.
For example:
$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon'); $keysToDelete = array(1, 3, 5); foreach($keysToDelete as $key){ unset($myArray[$key]); } print_r($myArray);
Output result:
Array ( [0] => apple [2] => orange [4] => kiwi )
Method 2: Use array_diff_key()
array_diff_key() function is used to compare the keys of two arrays Value, returns an array consisting of collections with different key values.
We can compare the original array with an array containing only the key values to be deleted, and then use the returned result to create a new array.
For example:
$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon'); $keysToDelete = array(1, 3, 5); $newArray = array_diff_key($myArray, array_flip($keysToDelete)); print_r($newArray);
Output result:
Array ( [0] => apple [2] => orange [4] => kiwi )
In this example, we use the array_flip() function to convert the key values in the $keysToDelete array into key names, because The array_diff_key() function requires an array containing key names.
Method 3: Use array_filter()
The array_filter() function is used to filter elements in the array. We can use this to filter out the key values to be deleted and create a new array.
For example:
$myArray = array('apple', 'banana', 'orange', 'pear', 'kiwi', 'watermelon'); $keysToDelete = array(1, 3, 5); $newArray = array_filter($myArray, function($key) use ($keysToDelete){ return !in_array($key, $keysToDelete); }, ARRAY_FILTER_USE_KEY); print_r($newArray);
Output result:
Array ( [0] => apple [2] => orange [4] => kiwi )
In this example, we use an anonymous function as the second parameter of array_filter(), which will return Elements with a value of true are retained in the array, otherwise they are filtered out. We use the in_array() function to check whether the key value of the element is in the array to be deleted, and if not, return true.
Conclusion
In PHP, there are many ways to delete multiple array elements, and we can choose which method to use according to the actual situation. This article introduces three common methods: using unset and foreach loops, using the array_diff_key() function, and using the array_filter() function.
These methods can well solve the problem of deleting multiple array elements. However, please note that using the unset() function may cause the array keys to be reordered. If you need to maintain the order of the keys, you will need to use other methods.
The above is the detailed content of How to delete multiple array elements in php. For more information, please follow other related articles on the PHP Chinese website!