这个问题有几个答案,但我想再补充一些内容,因为当我使用
unset
或
array_diff
时,当特定元素被删除时,我在处理新数组的索引时遇到了一些问题(因为初始索引被保存下来了)。
回到例子:
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
$array_without_strawberries = array_diff($array, array('strawberry'));
或者
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
unset($array[array_search('strawberry', $array)]);
如果您打印结果,您将获得:
foreach ($array_without_strawberries as $data) {
print_r($data);
}
结果:
> apple
> orange
> blueberry
> kiwi
但是索引将被保存,因此您可以像这样访问您的元素:
$array_without_strawberries[0] > apple
$array_without_strawberries[1] > orange
$array_without_strawberries[3] > blueberry
$array_without_strawberries[4] > kiwi
因此,最终的数组不会重新索引。因此,在
unset
或
array_diff
之后需要添加:
$array_without_strawberries = array_values($array)
之后,您的数组将具有普通索引:
$array_without_strawberries[0] > apple
$array_without_strawberries[1] > orange
$array_without_strawberries[2] > blueberry
$array_without_strawberries[3] > kiwi
与这篇文章相关的链接:
重新索引数组。
希望它能有所帮助。