Search code examples
phparrays

PHP: How to remove specific element from an array?


How do I remove an element from an array when I know the element's value? for example:

I have an array:

$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');

the user enters strawberry

strawberry is removed from $array.

To fully explain:

I have a database that stores a list of items separated by a comma. The code pulls in the list based on a user choice where that choice is located. So, if they choose strawberry they code pulls in every entry were strawberry is located then converts that to an array using split(). I want to them remove the user chosen items, for this example strawberry, from the array.


Solution

  • Use array_search to get the key and remove it with unset if found:

    if (($key = array_search('strawberry', $array)) !== false) {
        unset($array[$key]);
    }
    

    array_search returns false (null until PHP 4.2.0) if no item has been found.

    And if there can be multiple items with the same value, you can use array_keys to get the keys to all items:

    foreach (array_keys($array, 'strawberry') as $key) {
        unset($array[$key]);
    }