2009-11-19 31 views
7

Estoy trabajando en una pequeña aplicación ajax y necesito ver si los valores que se generan en el fondo son los esperados. El valor devuelto por la búsqueda puede ser una matriz multidimensional bastante compleja, ¿hay alguna manera de convertir esto en una cadena para que se pueda mostrar con alerta?PHP - ¿Convertir una matriz multidimensional en una cadena?

¿Hay alguna otra forma de ver estos valores?

Cualquier consejo apreciado.

Gracias.

Respuesta

24

print_r, var_dump o var_export son buenos candidatos. Mientras codifica una aplicación ajax, también puede consultar json_encode.

+0

salida del var_export se puede guardar en una variable: $ a = array (1, 2, array ("a", "b", "c")); $ b = var_export ($ a, verdadero); echo $ b; – ken

4

Si quiere mostrarlo con javascript, le recomendaría json_encode(), todo lo demás ha sido cubierto por la respuesta de knittl.

0

El comando implode devuelve una matriz como una cadena.

+6

Esto está bien para una sola matriz, pero no funciona de la caja con matrices multidimensionales. Tendría que recorrer cada matriz. – Eruant

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

encontré esta función útil:

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

desde esta dirección: http://blog.perplexedlabs.com/2008/02/04/php-array-to-string/

0

yo trabajo en un montón de aplicaciones Ajax. .en Firefox tengo un "complemento" llamado vista JSON

entonces todos mis proyectos tienen una función

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

lo que cada vez que quiero ver lo que la salida es simplemente voy test_array($something) y me muestra los resultados.

screenshot

su hizo la depuración de un breaze ahora

PS. sé que esto Q es antigua y no estoy realmente responder a la posters origional Q, pero podría ser útil para otra persona aswell

0

Aquí es una respuesta sencilla 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

varios errores ortográficos aquí ... dentro de implode_recur, la referencia a implode_r debe ser implode_recur. También cambie las dos instancias de $ out a $ output. Esto también agregará la cadena separadora antes del primer elemento en la matriz ... ">> a >> b >>" que puede no ser deseable en todos los casos. – user2782001

+0

Muchas gracias @ user2782001. Lo he corregido – kachmi

Cuestiones relacionadas