PHP скопировать массив без ссылок

Когда я копирую массив 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 )

0

Решение

Если ваша проблема решена с помощью повторяющаяся ссылка в первом комментарии вашего вопроса (поддерживается 4 другими в то время, когда я пишу это). Пожалуйста, удалите свой вопрос, чтобы SO мог уменьшить количество повторяющихся вопросов / ненужных раздутий.

В противном случае просто объявите статическую копию исходного массива для будущего использования.

$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>";
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector