2010-10-12 2 views
1

У меня есть массив:PHP - скопировать массив не работает

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. Что нужно сделать, чтобы решить эту проблему?

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

UPDATE: Мне нужно скопировать $ 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 ... 

ответ

1

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

$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

$resArray = $resultArray;

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

+1

1. какое-то объяснение никогда не помешает // 2. это одна неудача в коде Тима, но dosn't сказать, почему он только получаю «1» – oezi

+0

Я обновил свой первый пост. Я должен поместить несколько $ resultArray в $ resArray, поэтому мне понадобится индекс. – Tim

+0

Err, http://www.php.net/print_r - второй параметр сообщает ему возвращать выход функции вместо ее печати. –

1

Try без скобок, как это:

$resArray = $resultArray; 
print_r($resArray); 
+0

Я обновил свой первый пост. Я должен поместить несколько $ resultArray в $ resArray, поэтому мне понадобится индекс. – Tim

Смежные вопросы