unset释放或删除给定的变量
可以销毁数字
$a = 5;
echo $a;
echo "
";
unset($a);//释放(销毁)变量
echo $a;
输出结果:5
报错(释放变量,内存被收回)
可以销毁字符串
$a = '张三';
echo $a;
echo "
";
unset($a);//释放(销毁)变量
echo $a;
输出结果:张三
报错(释放变量,内存被收回)
也可以销毁数组
$a = array('张三','李四','王五');
print_r($a);
echo "
";
unset($a);
print_r($a);
输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
销毁数组中的一个元素,需指定键名
$a = array('张三','李四','王五');
print_r($a);
echo "
";
unset($a[1]);//输出指定的元素
print_r($a);
输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
Array([0] => 张三[2] => 王五)
输出元素中带键名的元素
$a = array('a01'=>'张三','a02'=>'李四','a03'=>'王五');
print_r($a);
echo "
";
unset($a['a02']);//输出指定的元素
print_r($a);
输出结果:Array([a01] => 张三[a02] => 李四[a03] => 王五)
Array([a01] => 张三[a03] => 王五)
二维数组删除
删除前
$arr = array();
$arr[1001] = array(1001,'张三','男',20);
$arr[1002] = array(1002,'李四','男',20);
$arr[1003] = array(1003,'王五','男',20);
echo '';
print_r($arr);
echo '
';
输出结果:Array(
[1001] => Array
(
[0] => 1001
[1] => 张三
[2] => 男
[3] => 20
)
[1002] => Array
(
[0] => 1002
[1] => 李四
[2] => 男
[3] => 20
)
[1003] => Array
(
[0] => 1003
[1] => 王五
[2] => 男
[3] => 20
)
)
删除后
unset($arr[1002]);
输出结果:Array(
[1001] => Array
(
[0] => 1001
[1] => 张三
[2] => 男
[3] => 20
)
[1003] => Array
(
[0] => 1003
[1] => 王五
[2] => 男
[3] => 20
)
)
删除也可以用array_splice(把数组中的一部分去掉并用其它值代替)
array_splice(array &$input,int %offset|,int $length = 0|,mixed $replacement ||)
input:输入的数组
offset:如果offset为正,则从input数组中该值指定的偏移量开始移除。如果offset为负,则从input末尾倒数该值指定的偏移量开始移除。
length:如果省略length,则移除数组中从offset到结尾的所有部分。如果指定了length并且为正值,则移除这么多单元。如果制定了length并且为负值,则移除从offset到数组末尾倒数length为止中间所有的单元。
$a = array('张三','李四','王五');
print_r($a);
echo "
";
unset($a[1]);//输出指定的元素
print_r($a);
输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
Array([0] => 张三[2] => 王五)
array_splice($a,1,1);
输出结果:Array([0] => 张三[1] => 李四[2] => 王五)
Array([0] => 张三[1] => 王五)
注:第一个1,索引号为1
第二个1,删除一个
两者区别:后边的索引号会根据删除的元素进行变化