我有这个数组:
$cars = array("Volvo", "BMW", "Toyota");
$cars_without_volvo=unset($cars[0]);
print_r($cars);
print_r($cars_without_volvo);die;
我需要同时使用$cars
和$cars_without_volvo
。以上似乎没有用。
答案 0 :(得分:3)
您可以将数组复制到$cars_without_volvo
并从中取消设置,然后您将拥有两个不同的数组。 unset()
不返回任何内容,它用于直接取消设置元素或变量。
这当然假设Volvo
总是 $cars
数组中的第一个元素,因为我们取消了第一个元素。
$cars = array("Volvo", "BMW", "Toyota");
$cars_without_volvo = $cars;
unset($cars_without_volvo[0]);
print_r($cars);
print_r($cars_without_volvo);
输出
Array (
[0] => Volvo
[1] => BMW
[2] => Toyota
)
Array (
[1] => BMW
[2] => Toyota
)
您还可以使用Volvo
(demo)动态找到array_search()
元素的键,方法是将上面的unset()
行替换为下面的一行。< / p>
unset($cars_without_volvo[array_search("Volvo", $cars_without_volvo)]);
使用其他答案中显示的array_shift()
很可能是更好的方法 - 如果您要删除的元素是第一个。如果要删除差异索引中的元素而不是第一个或最后一个,使用此方法可能会更容易。
答案 1 :(得分:3)
array_shift()
从数组中删除第一个元素,array_pop
将其从结尾中删除:
<?php
$cars = array("Volvo", "BMW", "Toyota");
$volvos = array_shift($cars);
var_dump($cars, $volvos);
输出:
array(2) { [0]=> string(3) "BMW" [1]=> string(6) "Toyota" } string(5) "Volvo"
请在此处查看:https://3v4l.org/nZqul 文档:http://php.net/manual/en/function.array-shift.php