2009-11-19 17 views
7

Sto lavorando su una piccola applicazione Ajax e devo vedere se i valori generati in background sono quelli previsti. Il valore restituito dalla ricerca può essere un array multidimensionale piuttosto complesso, esiste un modo per convertirlo in una stringa in modo che possa essere visualizzato con un avviso?PHP - Convertire un array multidimensionale in stringa?

C'è qualche altro modo di vedere questi valori?

Qualsiasi consiglio è gradito.

Grazie.

risposta

24

print_r, var_dump o var_export sono buoni candidati. durante la codifica di un'applicazione ajax, potresti anche voler dare un'occhiata a json_encode.

+0

uscita del var_export può essere salvato in una variabile: $ a = array (1, 2, array ("a", "b", "c")); $ b = var_export ($ a, true); echo $ b; – ken

4

Se si desidera visualizzarlo con javascript, si consiglia di json_encode(), tutto il resto è stato coperto dalla risposta di knittl.

0

Il comando implode restituisce una matrice sotto forma di stringa.

+6

Questo va bene per un singolo array, ma non funziona immediatamente con array multidimensionali. Avresti bisogno di scorrere ogni array. – Eruant

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

ho trovato questa utile funzione:

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; 
} 

da questo indirizzo: http://blog.perplexedlabs.com/2008/02/04/php-array-to-string/

0

io lavoro su un mucchio di applicazioni Ajax. . in firefox ho un "add-on" chiamato JSON view

poi tutti i miei progetti hanno una funzione

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

così ogni volta che voglio vedere ciò che l'uscita è mi basta andare test_array($something) e mi mostra i risultati.

screenshot

relativo ha fatto un debug breaze ora

PS. conosce questo Q è antica e im non realmente rispondere al manifesti origional Q, ma potrebbe essere utile per qualcun altro entrava

0

Ecco una risposta semplice in 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

qui alcuni errori di battitura ... all'interno di implode_recur, il riferimento a implode_r dovrebbe essere implode_recur.Inoltre, cambia le due istanze di $ out a $ output. Questo aggiungerà anche la stringa separatrice prima del primo elemento dell'array ... ">> a >> b >>" che potrebbe non essere desiderabile in tutti i casi. – user2782001

+0

Molte grazie @ user2782001. L'ho corretto – kachmi

Problemi correlati