在清除数组中的所有值时,哪个更有效?第一个函数要求我在第二个示例的循环中每次都使用该函数。
foreach ($array as $i => $value) {
unset($array[$i]);
}
或者这个
foreach($blah_blah as $blah) {
$foo = array();
//do something
$foo = null;
}
发布于 2012-04-22 02:52:46
正如Zack在下面的评论中所说的,您可以使用以下命令简单地重新实例化它
$foo = array(); // $foo is still here
如果你想要更强大的东西,使用unset,因为它还会从符号表中清除$foo,如果你以后需要这个数组,只需再次实例化它。
unset($foo); // $foo is gone
$foo = array(); // $foo is here again
发布于 2012-04-22 02:52:43
如果你只想将一个变量重置为一个空数组,你可以简单地重新初始化它:
$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
发布于 2012-04-22 02:51:04
如果数组是关联的,我会说第一个。如果没有,请使用for
循环:
for ($i = 0; $i < count($array); $i++) { unset($array[$i]); }
不过,如果可能的话,使用
$array = array();
将数组重置为空数组更可取。
https://stackoverflow.com/questions/10261925
复制相似问题