清除 PHP 数组值的最佳方法

2022-08-30 06:24:25

哪个对于清除数组中的所有值更有效?第一个要求我每次在第二个示例的循环中使用该函数。

foreach ($array as $i => $value) {
    unset($array[$i]);
}

或者这个

foreach($blah_blah as $blah) {
    $foo = array();
    //do something
    $foo = null;
}

答案 1

就像Zack在下面的评论中所说的那样,你可以简单地使用重新实例化它

$foo = array(); // $foo is still here

如果你想要一些更强大的东西,请使用unset,因为它也会从符号表中清除$foo,如果你以后需要数组,只需再次实例化它。

unset($foo); // $foo is gone
$foo = array(); // $foo is here again

答案 2

如果您只想将变量重置为空数组,只需重新初始化它即可:

$foo = array();

请注意,这将保留对它的任何引用:

$foo = array(1,2,3);
$bar = &$foo;
// ...
$foo = array(); // clear array
var_dump($bar); // array(0) { } -- bar was cleared too!

如果要中断对它的任何引用,请先取消设置它:

$foo = array(1,2,3);
$bar = &$foo;
// ...
unset($foo); // break references
$foo = array(); // re-initialize to empty array
var_dump($bar); // array(3) { 1, 2, 3 } -- $bar is unchanged