【问题标题】:PHP copy array without references没有引用的PHP复制数组
【发布时间】:2017-07-08 23:28:52
【问题描述】:

当我复制带有引用的 PHP 数组时,复制已经有来自原始的引用

$arr = [1,2,3];
print_r($arr); echo"<br>";    
$x = &$arr[1];
$arr2 = $arr;
print_r($arr); print_r($arr2); echo"<br>";
$x = 8;
print_r($arr); print_r($arr2); echo"<br>";

结果:

Array ( [0] => 1 [1] => 2 [2] => 3 ) 
Array ( [0] => 1 [1] => 2 [2] => 3 ) Array ( [0] => 1 [1] => 2 [2] => 3 ) 
Array ( [0] => 1 [1] => 8 [2] => 3 ) Array ( [0] => 1 [1] => 8 [2] => 3 ) 

如何复制一个数组,使其与原始引用没有变化?

Array ( [0] => 1 [1] => 2 [2] => 3 ) 
Array ( [0] => 1 [1] => 2 [2] => 3 ) Array ( [0] => 1 [1] => 2 [2] => 3 ) 
Array ( [0] => 1 [1] => 8 [2] => 3 ) Array ( [0] => 1 [1] => 2 [2] => 3 )

【问题讨论】:

标签: php arrays reference copy clone


【解决方案1】:

如果使用问题的第一条评论中的重复链接解决了您的问题(在我写这篇文章时得到其他 4 人的支持)。请删除您的问题,以便减少重复问题/不必要的臃肿。

否则,只需声明原始数组的静态副本以供将来使用。

$arr = [1,2,3];
$copy=$arr;  // preserve the original
print_r($arr); echo"<br>";    
$x = &$arr[1];
$arr2 = $arr;
print_r($arr); print_r($arr2); echo"<br>";
$x = 8;
print_r($arr); print_r($copy); echo"<br>";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2023-03-17
    • 2018-10-24
    • 2020-04-25
    • 2018-10-26
    • 1970-01-01
    相关资源
    最近更新 更多