删除数组中特定元素的方法
P粉141455512
P粉141455512 2023-08-20 16:20:23
0
2
544
<p>当我知道元素的值时,如何从数组中删除一个元素?例如:</p> <p>我有一个数组:</p> <pre class="brush:php;toolbar:false;">$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');</pre> <p>用户输入<code>strawberry</code></p> <p><code>strawberry</code>从<code>$array</code>中被移除。</p> <p>完整解释如下:</p> <p>我有一个数据库,它存储了用逗号分隔的项目列表。代码根据用户选择的位置拉取列表。所以,如果他们选择了草莓,代码会拉取出每个包含草莓的条目,然后使用split()将其转换为数组。我想要从数组中删除用户选择的项目,例如在这个例子中是草莓。</p>
P粉141455512
P粉141455512

全部回复(2)
P粉511757848

使用array_diff()进行一行解决方案:

$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi', 'strawberry'); //再加一个'strawberry'以证明它可以删除字符串的多个实例
$array_without_strawberries = array_diff($array, array('strawberry'));
print_r($array_without_strawberries);

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

P粉254077747

使用array_search函数获取键,并使用unset函数将其删除(如果找到):

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

array_search函数在未找到项时返回false(在PHP 4.2.0之前返回null)。

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

foreach (array_keys($array, 'strawberry') as $key) {
    unset($array[$key]);
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板