How to remove the element from an array by value in PHP
To remove the element from an array by value, we can use the combination of array_search()
and unset()
functions in PHP.
Here is an example, that removes the second element "green"
from the colors
array by value.
<?php
$colors = array("red", "green", "yellow", "orange");
if (($key = array_search("green", $colors)) !== false) {
unset($colors[$key]);
}
print_r($colors)
?>
Output:
Array
(
[0] => red
[2] => yellow
[3] => orange
)
The unset()
function doesn’t re-index the array keys, if you want to re-index it then you can use the array_values()
function after unset()
.
<?php
$colors = array("red", "green", "yellow", "orange");
if (($key = array_search("green", $colors)) !== false) {
unset($colors[$key]);
}
print_r(array_values($colors))
?>
Similarly, we can also use the array_diff()
function like this to remove it.
$colors = array("red", "green", "yellow", "orange");
$newArray = array_diff($colors, array("green"));
print_r($newArray)
You can also use the array_diff()
function to remove multiple elements by using value
.
$colors = array("red", "green", "yellow", "orange");
$newArray = array_diff($colors, array("green", "yellow"));
print_r($newArray)
Note: The
array_diff()
function creates a new array by preserving the original array, where the first solution modifies the original array.