How do I remove an element from an array when I know the elements name? for example:
I have an array:
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
the user enters strawberry
strawberry
is removed.
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.
This question has several answers but I want to add something more because when I used
unset
orarray_diff
I had several problems to play with the indexes of the new array when the specific element was removed (because the initial index are saved)I get back to the example :
or
If you print the result you will obtain :
Result :
But the indexes will be saved and so you will access to your element like :
And so the final array are not re-indexed. So you need to add after the
unset
orarray_diff
:After that your array will have a normal index :
Related to this post : Re-Index Array
Hope it will help
$delete = "strawberry";
$index = array_search($delete, $array);
array_splice($array, $index, 1);
Use
array_search
to get the key and remove it withunset
if found: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: