Home >Backend Development >PHP Problem >How to delete multiple array elements in php

How to delete multiple array elements in php

PHPz
PHPzOriginal
2023-04-19 09:18:36726browse

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!

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