PHP - копировать массив не работает - PullRequest
1 голос
/ 12 октября 2010

У меня есть массив:

print_r($resultArray);

Array
(
    [AB34] => Array
        (
            [a] => 13
            [b] => 10
            [c] => 3
            [d] => 88
            [e] => 73
        )
    ...
)

И я хочу скопировать этот массив в другой:

$resArray[] = $resultArray;
print_r($resArray);

->

Array
(
    [0] => 1
)

Таким образом, новый массив $ resArray не содержит содержимого $ resultArray. Что нужно сделать, чтобы решить эту проблему?

С наилучшими пожеланиями.

ОБНОВЛЕНИЕ: мне нужно скопировать $ resultArray в $ resArray (это простой пример), потому что $ resultArray изменится, и мне нужны данные в $ resArray с индексом, поэтому $ resArray [0] первый $ resultArray $ resArray [1] второе полное значение $ resultArray, ... Некоторый код (только простой пример!):

$resArray[0] = $resultArray;
... calculations on $resultArray ...
$resArray[1] = $resultArray;
... calculations on $resultArray ...
$resArray[2] = $resultArray;
... calculations on $resultArray ...

Ответы [ 3 ]

1 голос
/ 12 октября 2010

Попробуйте без скобок, как это:

$resArray = $resultArray;
print_r($resArray);
1 голос
/ 12 октября 2010

Я могу только догадываться, что у вас где-то есть небольшая синтаксическая ошибка.Мой тестовый сценарий работает как положено:

$resultArray = array(
    'AB34' => array(
        'a' => 13,
        'b' => 10,
        'c' => 3,
        'd' => 88,
        'e' => 73
    )
);

echo '<pre>';
echo "Printing \$resultArray\n";
print_r($resultArray);

$resArray[] = $resultArray;
$resArray[] = $resultArray;
$resArray[0]['AB34']['c'] = 'Penguins are neat';

echo "\n\nPrinting \$resArray\n";
print_r($resArray);

Возвращает

Printing $resultArray
Array
(
    [AB34] => Array
        (
            [a] => 13
            [b] => 10
            [c] => 3
            [d] => 88
            [e] => 73
        )

)


Printing $resArray
Array
(
    [0] => Array
        (
            [AB34] => Array
                (
                    [a] => 13
                    [b] => 10
                    [c] => Penguins are neat
                    [d] => 88
                    [e] => 73
                )

        )

    [1] => Array
        (
            [AB34] => Array
                (
                    [a] => 13
                    [b] => 10
                    [c] => 3
                    [d] => 88
                    [e] => 73
                )

        )

)
1 голос
/ 12 октября 2010

$resArray = $resultArray;

... также используйте print_r($var, TRUE); для получения полного содержимого переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...