PHP:array_diff-删除一个值
我目前正在尝试使用array_diff从数组中删除1个值 现在代码如下所示:PHP:array_diff-删除一个值,php,arrays,Php,Arrays,我目前正在尝试使用array_diff从数组中删除1个值 现在代码如下所示: $item_id = 501; $array = array_diff($user_items, array($item_id)); 用户项目数组:501502 数组中的结果正确:502 是否可以仅删除1x501而不是2x501值?或者换一种说法:将移除限制为1 数组则为:501502 感谢您提供任何建议您可以使用这些建议查找并删除第一个值: $pos = array_search($item_id, $user_i
$item_id = 501;
$array = array_diff($user_items, array($item_id));
用户项目数组:501502
数组中的结果正确:502
是否可以仅删除1x501而不是2x501值?或者换一种说法:将移除限制为1
数组则为:501502
感谢您提供任何建议您可以使用这些建议查找并删除第一个值:
$pos = array_search($item_id, $user_items);
if($pos !== false)
unset($user_items[$pos]);
如何搜索该项目,然后删除它(如果存在)
$key = array_search($item_id, $user_items)
if ($key !== FALSE) {
unset($user_items[$key]);
}
使用
unset
并不像您想象的那么简单。有关详细信息,请参阅中Stefan Gehrig的回答。OP只想删除一个值。如果他想把它们全部取出来,那么array\u diff
将是一个更好的选择,这就是我的代码所做的。再看一眼,或者试着运行它并输出结果。是的,我现在看到您正在迭代指针。不过,在这种情况下只需要一个替换,所以使用循环没有意义