PHP:array_diff - 删除一个值

时间:2013-01-30 23:10:14

标签: php arrays

我目前正在尝试使用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

感谢任何建议

2 个答案:

答案 0 :(得分:5)

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

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

if($pos !== false)
  unset($user_items[$pos]);

答案 1 :(得分:2)

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

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

使用unset并不像你想象的那么简单。有关详细信息,请参阅this similar question中的Stefan Gehrig的答案。