删除数组中的值而不删除重复项


Remove value within an array without removing duplicates

我正在为一个php游戏做一个库存系统,其中项目的ID存储在数据库上的一个变量中,由分隔符分隔。例如:-1-1-1

foreach (array_keys($player_consumables, $use_item) as $key) {
unset($player_consumables[$key]);
}

此实例正在删除项目的所有条目。而不是删除所有这些,我将如何让它只删除一个重复的条目?

您可以使用$newArray=array_unique($player_consumables);

所以你不想做的是删除值为 $use_item 的第一个元素 - 对吧?

怎么样:

unset($player_consumables[array_search($use_item, $player_consumables)]);

如果您确实需要foreach请尝试:

foreach (array_keys($player_consumables, $use_item) as $key) {
    unset($player_consumables[$key]);
    break; // stop the foreach to only remove the first item
}