2009-03-28 13 views
22

¿Es posible hacer eco o imprimir todo el contenido de una matriz sin especificar qué parte de la matriz?Salida (eco/impresión) todo desde una matriz PHP

El escenario: Estoy intentando hacer eco de todo, desde:

while($row = mysql_fetch_array($result)){ 
echo $row['id']; 
} 

Sin especificar "id" y en lugar de dar salida a todo el contenido de la matriz.

Respuesta

34

Si desea dar formato a la salida por su cuenta, sólo tiene que añadir otro bucle (foreach) para repetir el contenido de la fila actual:

while ($row = mysql_fetch_array($result)) { 
    foreach ($row as $columnName => $columnData) { 
     echo 'Column name: ' . $columnName . ' Column data: ' . $columnData . '<br />'; 
    } 
} 

O si no le importa el formato, utilice la función print_r se recomienda en las respuestas anteriores.

while ($row = mysql_fetch_array($result)) { 
    echo '<pre>'; 
    print_r ($row); 
    echo '</pre>'; 
} 

print_r() imprime sólo las claves y los valores de la matriz, que se oponen a var_dump() whichs también imprime los tipos de los datos de la matriz, es decir, String, int, dobles, y así sucesivamente. Si le importan los tipos de datos, use var_dump() sobre print_r().

6

var_dump() puede hacer esto.

Esta función muestra información estructurada sobre una o más expresiones que incluye su tipo y valor. Las matrices y los objetos se exploran recursivamente con valores sangrados para mostrar la estructura.

http://php.net/manual/en/function.var-dump.php

4

creo que busca print_r que se imprima la matriz como texto. Sin embargo, no puedes controlar el formato, es más para la depuración. Si quieres un formateo genial, deberás hacerlo de forma manual.

17

Para agradables & resultados legibles, utilice esto:

function printVar($var) { 
    echo '<pre>'; 
    var_dump($var); 
    echo '</pre>'; 
} 

La función anterior preservará el formato original, por lo que es (más) legible en un navegador web.

+1

¿No debería llamar a ese printVar o debugVar? ¿Por qué llamarlo readVar? – jmucchiello

+0

Buen punto, nombrado sobre la marcha. Probablemente debería ser printVar. Gracias por el voto negativo. – karim79

1

similares a Karim, pero con print_r que tiene una gran parte pequeña de salida y me encuentro es por lo general todo lo que necesita:

function PrintR($var) { 
    echo '<pre>'; 
    print_r($var); 
    echo '</pre>'; 
} 
2

Esta es una pequeña función que uso todo el tiempo, es útil si está depurando matrices. Es más o menos lo mismo que publicaron Darryl y Karim. Acabo de agregar un título de parámetro para que tenga cierta información de depuración como qué matriz está imprimiendo. también verifica si le ha proporcionado una matriz válida y le permite saber si no lo hizo.

function print_array($title,$array){ 

     if(is_array($array)){ 

      echo $title."<br/>". 
      "||---------------------------------||<br/>". 
      "<pre>"; 
      print_r($array); 
      echo "</pre>". 
      "END ".$title."<br/>". 
      "||---------------------------------||<br/>"; 

     }else{ 
      echo $title." is not an array."; 
     } 
} 

Uso básico:

//your array 
$array = array('cat','dog','bird','mouse','fish','gerbil'); 
//usage 
print_array("PETS", $array); 

Resultados:

PETS 
||---------------------------------|| 

Array 
(
    [0] => cat 
    [1] => dog 
    [2] => bird 
    [3] => mouse 
    [4] => fish 
    [5] => gerbil 
) 

END PETS 
||---------------------------------|| 
0

Puede utilizar print_r para obtener una salida legible por humanos. Pero para mostrarlo como texto, agregamos "echo '';"

echo ''; print_r ($ row);

0
//@parram $data-array,$d-if true then die by default it is false 
//@author Your name 

function p($data,$d = false){ 

    echo "<pre>"; 
     print_r($data); 
    echo "</pre>"; 

    if($d == TRUE){ 
     die(); 
    } 
} // END OF FUNCTION 

Utilice esta función cada vez que cuando necesite encadenar o una matriz, funcionará EXCELENTE.
Hay 2 Patameters
1. $ datos - Puede ser arreglo o cadena
2. $ d - Por defecto es falso, pero si se establece como true entonces se ejecutará la función die()

En su caso, puede usar de esta manera ...

while($row = mysql_fetch_array($result)){ 
    p($row); // Use this function if you use above function in your page. 
} 
Cuestiones relacionadas