PHP的:如何从数组中删除特定的元素?

当我知道元素名称时,如何从数组中删除元素? 例如:

我有一个数组:

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

用户输入strawberry

strawberry被删除。

充分解释:

我有一个数据库,存储由逗号分隔的项目列表。 代码根据选择所在的用户选择拉入列表中。 所以,如果他们选择了草莓,他们会在草莓所在的每个条目中进行编码,然后使用split()将其转换为数组。 我希望他们从阵列中删除用户选择的项目,例如草莓。


使用array_search拿到钥匙,并删除它unset如发现:

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

如果没有找到项目, array_search返回false(直到PHP 4.2.0为空)。

如果可以有多个具有相同值的项目,则可以使用array_keys获取所有项目的键值:

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

为1行解决方案使用array_diff()

$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi', 'strawberry'); //throw in another 'strawberry' to demonstrate that it removes multiple instances of the string
$array_without_strawberries = array_diff($array, array('strawberry'));
print_r($array_without_strawberries);

...不需要额外的函数或foreach循环。


if (in_array('strawberry', $array)) 
{
    unset($array[array_search('strawberry',$array)]);
}
链接地址: http://www.djcxy.com/p/57329.html

上一篇: PHP: How to remove specific element from an array?

下一篇: Removing array item by value