2010-10-12 10 views
1

J'ai un tableau:PHP - copier un tableau ne fonctionne pas

print_r($resultArray); 

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

Et je veux copier ce tableau dans un autre:

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

->

Array 
(
    [0] => 1 
) 

Ainsi, le nouveau tableau $ resArray n'a pas le contenu de $ resultArray. Que fallait-il faire pour résoudre ce problème?

Cordialement. MISE À JOUR: Je dois copier le $ resultArray dans $ resArray (c'est un exemple facile), car $ resultArray va changer et j'ai besoin des données dans un resArray $ avec index, donc $ resArray [0] le premier $ resultArray , resArray $ [1] la deuxième valeur totale du resultArray $ ... Certains code (seulement un exemple simple!):

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

Répondre

1

je ne peux deviner que vous avez une petite erreur de syntaxe quelque part. Mon testcase fonctionne comme prévu:

$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); 

Retours

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;

... également utiliser print_r($var, TRUE); pour obtenir le contenu complet de la variable.

+1

1. une explication ne blesse jamais // 2. C'est un échec dans le code de Tim, mais dosn't dire pourquoi il n'obtenir un "1" – oezi

+0

J'ai mis à jour mon premier message. Je dois mettre plusieurs $ resultArray dans $ resArray, donc j'ai besoin de l'index. – Tim

+0

Err, http://www.php.net/print_r - le deuxième paramètre lui dit de retourner la sortie de la fonction au lieu de l'imprimer. –

1

Essayez sans parenthèses comme ceci:

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

J'ai mis à jour mon premier message. Je dois mettre plusieurs $ resultArray dans $ resArray, donc j'ai besoin de l'index. – Tim