首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >清除PHP数组值的最佳方法

清除PHP数组值的最佳方法
EN

Stack Overflow用户
提问于 2012-04-22 02:48:53
回答 11查看 429.9K关注 0票数 195

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

代码语言:javascript
复制
foreach ($array as $i => $value) {
    unset($array[$i]);
}

或者这个

代码语言:javascript
复制
foreach($blah_blah as $blah) {
    $foo = array();
    //do something
    $foo = null;
}
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2012-04-22 02:52:46

正如Zack在下面的评论中所说的,您可以使用以下命令简单地重新实例化它

代码语言:javascript
复制
$foo = array(); // $foo is still here

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

代码语言:javascript
复制
unset($foo); // $foo is gone
$foo = array(); // $foo is here again
票数 290
EN

Stack Overflow用户

发布于 2012-04-22 02:52:43

如果你只想将一个变量重置为一个空数组,你可以简单地重新初始化它:

代码语言:javascript
复制
$foo = array();

请注意,这将保留对它的所有引用:

代码语言:javascript
复制
$foo = array(1,2,3);
$bar = &$foo;
// ...
$foo = array(); // clear array
var_dump($bar); // array(0) { } -- bar was cleared too!

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

代码语言:javascript
复制
$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
票数 92
EN

Stack Overflow用户

发布于 2012-04-22 02:51:04

如果数组是关联的,我会说第一个。如果没有,请使用for循环:

代码语言:javascript
复制
for ($i = 0; $i < count($array); $i++) { unset($array[$i]); }

不过,如果可能的话,使用

代码语言:javascript
复制
$array = array();

将数组重置为空数组更可取。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10261925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档