首页 > 解决方案 > 在这种情况下,哪种清除数组的方法更好?

问题描述

我打算通过循环创建一个多维数组。我的想法是,在循环函数内部,我会将元素分配到一个数组中,然后将单个数组分配到另一个大数组中,然后再清空单个数组以进行下一个循环过程。

例如

for($i=0;$i<5;$i++){
   $arr1['a'] = $i;
   $arr1['b'] = $i+=2;
   $arr2[] = $arr;  //assign the arr1 into the arr2
   $arr1= []; //clear arr1 again for the next looping
}
var_dump($arr2);

结果将是:

array (size=2)
  0 => 
    array (size=2)
      'a' => int 0
      'b' => int 2
  1 => 
    array (size=2)
      'a' => int 3
      'b' => int 5

但是我发现实际上有很多方法可以清空数组,我不确定我清空数组的方式比其他方式更好/更有效,例如在这种情况下unset重新初始化数组。$arr1 = array()我在网上浏览,但没有太多比较这些方式。有什么建议可以提高这个或这个的性能与其他方法一样好?通过查看这些:

unset($arr)
$arr = array()
$arr = []

也许还有其他方式?

标签: phparrays

解决方案


您可以执行以下操作,而不是创建一个额外的数组(较小的数组)然后将值分配给较大的数组:

for($i=0;$i<5;$i++){
      $arr2[$i]['a'] = $i;
      $arr2[$i]['b'] = $i+2;
    }
var_dump($arr2);

输出:

array (size=2)
  0 => 
    array (size=2)
      'a' => int 0
      'b' => int 2
  1 => 
    array (size=2)
      'a' => int 3
      'b' => int 5

在这种情况下,您不需要一次又一次地清空(较小的)数组。当您只使用一个数组时,它还将节省您的内存空间。


推荐阅读