2009-11-19 11 views
7

Je travaille sur une petite application ajax et j'ai besoin de voir si les valeurs générées en arrière-plan sont ce qui est attendu. La valeur retournée par la quête peut être un tableau multidimensionnel complexe, y a-t-il un moyen de convertir cela en une chaîne de caractères afin qu'elle puisse être affichée avec une alerte?PHP - Convertir un tableau multidimensionnel en chaîne?

Existe-t-il une autre façon de voir ces valeurs?

Un conseil apprécié.

Merci.

Répondre

24

print_r, var_dump ou var_export sont de bons candidats. lors du codage d'une application ajax, vous pouvez également regarder json_encode.

+0

sortie de var_export peut être enregistré à une variable: $ a = tableau (1, 2, tableau ("a", "b", "c")); $ b = var_export ($ a, true); echo $ b; – ken

4

Si vous voulez le montrer avec javascript, je recommanderais json_encode(), tout le reste a été couvert par la réponse de knittl.

0

La commande implode renvoie un tableau sous forme de chaîne.

+6

Cela convient à un seul tableau, mais ne fonctionne pas avec des tableaux multidimensionnels. Vous auriez besoin de faire défiler chaque tableau. – Eruant

1
<script type="text/javascript"> 
alert(<?=print_r($array)?>); 
</script> 
1

J'ai trouvé cette fonction utile:

function array2str($array, $pre = '', $pad = '', $sep = ', ') 
{ 
    $str = ''; 
    if(is_array($array)) { 
     if(count($array)) { 
      foreach($array as $v) { 
       $str .= $pre.$v.$pad.$sep; 
      } 
      $str = substr($str, 0, -strlen($sep)); 
     } 
    } else { 
     $str .= $pre.$array.$pad; 
    } 

    return $str; 
} 

à cette adresse: http://blog.perplexedlabs.com/2008/02/04/php-array-to-string/

0

je travaille sur un tas d'applications ajax. dans Firefox j'ai un "add-on" appelé JSON voir

alors tous mes projets ont une fonction

function test_array($array) { 
    header("Content-Type: application/json"); 
    echo json_encode($array); 
    exit(); 
} 

donc chaque fois que je veux voir ce que la sortie i est juste aller test_array($something) et il me montre les résultats.

screenshot

sa mise au point d'un fait breaze maintenant

PS. savent Q est ancienne et je ne suis pas vraiment répondre à l'affiche origional Q mais pourrait être utile pour quelqu'un d'autre aswell

0

Voici une réponse simple en PHP:

function implode_recur($separator, $arrayvar) { 
    $output = ""; 
    foreach ($arrayvar as $av) 
    if (is_array ($av)) 
     $out .= implode_recur($separator, $av); // Recursive array 
    else     
     $out .= $separator.$av; 

    return $out;<br> 
} 

$result = implode_recur(">>",$variable); 
+0

plusieurs fautes de frappe ici ... dans implode_recur, la référence à implode_r devrait être implode_recur. Changez également les deux instances de $ out en $ output. Cela ajoutera également la chaîne de séparateur avant le premier élément du tableau ... ">> a >> b >>" ce qui peut ne pas être souhaitable dans tous les cas. – user2782001

+0

Merci beaucoup @ user2782001. Je l'ai corrigé. – kachmi

Questions connexes