3

我目前正在尝试使用 array_diff 从数组中删除 1 个值。

代码现在看起来像这样:

$item_id = 501;
$array = array_diff($user_items, array($item_id));

用户项目数组:501,501,502,502

在数组中正确结果:502,502

是否可以仅删除 1x501 而不是 2x501 值?或者说不同:将删除限制为 1 个值

那么数组是:501,502,502

任何建议表示赞赏

4

2 回答 2

5

您可以使用array_search来查找和删除第一个值:

$pos = array_search($item_id, $user_items);

if($pos !== false)
  unset($user_items[$pos]);
于 2013-01-30T23:13:27.543 回答
2

如何搜索该项目,然后如果它存在则将其删除?

$key = array_search($item_id, $user_items)
if ($key !== FALSE) {
  unset($user_items[$key]);
}

使用unset并不像你想象的那么简单。有关详细信息,请参阅 Stefan Gehrig 在此类似问题中的回答。

于 2013-01-30T23:20:18.267 回答