刪除數組中特定元素的方法
P粉141455512
P粉141455512 2023-08-20 16:20:23
0
2
524
<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]);
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板