首页  >  问答  >  正文

删除数组中特定元素的方法

<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粉141455512P粉141455512396 天前481

全部回复(2)我来回复

  • P粉511757848

    P粉5117578482023-08-21 13:42:03

    使用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循环。

    回复
    0
  • P粉254077747

    P粉2540777472023-08-21 12:54:10

    使用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]);
    }

    回复
    0
  • 取消回复