Come echeggiare o stampare un array in PHP?


199

Ho questo array

Array
(
  [data] => Array
    (
      [0] => Array
        (
          [page_id] => 204725966262837
          [type] => WEBSITE
        )

      [1] => Array
        (
          [page_id] => 163703342377960
          [type] => COMMUNITY
        )
      )
)

La mia domanda è: come posso semplicemente fare eco al contenuto senza questa struttura? Provai

foreach ($results as $result) {
    echo $result->type; 
    echo "<br>";
} 

Risposte:


125

Questo lo farà

foreach($results['data'] as $result) {
    echo $result['type'], '<br>';
}

Grazie per questo. Puoi dirmi come posso fare ad esempio solo il tipo di array [1]?
EnexoOnoma,

7
@Kaoukkosecho $results['data'][1]['type'];
Shiplu Mokaddim,

E se non avessi una chiave simile data?
Pratik Butani,

467

Per vedere il contenuto dell'array è possibile utilizzare.

1) print_r($array); o se vuoi un array ben formattato, allora:

echo '<pre>'; print_r($array); echo '</pre>';

2) usare var_dump($array)per ottenere maggiori informazioni sul contenuto dell'array come tipo di dati e lunghezza.

3) è possibile eseguire il loop dell'array utilizzando php foreach();e ottenere l'output desiderato. maggiori informazioni su foreach nel sito web della documentazione di php:
http://in3.php.net/manual/en/control-structures.foreach.php


2
Bello ed elegante. Potresti voler cambiare il tag di chiusura in # 1 da <pre /> a </pre>.
Michael,

1
Questa risposta non risolve l'errore commesso da OP.
Shiplu Mokaddim,

2
potresti spiegare in che modo il costrutto <pre> </pre> rende questa visualizzazione "piacevole?"
Robin Andrews,

1
Il tag @Robin <pre> mostra nuove righe e tabulazioni come è generato da print_r (); senza <pre> vedresti un limite disordinato di dati non formattati. Per vederlo formattato dovresti quindi visualizzare l'origine della pagina html.
jc,

97

Se vuoi solo conoscere il contenuto senza un formato (ad esempio a scopo di debug), lo uso:

echo json_encode($anArray);

Questo lo mostrerà come un JSON che è abbastanza leggibile dall'uomo.


Volevo estrarre alcuni dati da un html - phpdocumento usando il InAppBrowser executeScriptmetodo Cordova , senza json_encode($array)che non avrei potuto farlo! Grazie mille @Mark E
Hamid Araghi

31

Esistono molteplici funzioni per stampare il contenuto dell'array, ciascuna dotata di funzionalità.

print_r()

Stampa informazioni leggibili dall'uomo su una variabile.

$arr = ["a", "b", "c"];
echo "<pre>";
print_r($arr);
echo "</pre>";
Array
(
    [0] => a
    [1] => b
    [2] => c
)


var_dump()

Visualizza informazioni strutturate sulle espressioni che includono il tipo e il valore.

echo "<pre>";
var_dump($arr);
echo "</pre>";
array(3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


var_export()

Visualizza informazioni strutturate sulla variabile data in cui la rappresentazione restituita è un codice PHP valido.

echo "<pre>";
var_export($arr);
echo "</pre>";
array (
  0 => 'a',
  1 => 'b',
  2 => 'c',
)

Si noti che poiché il browser condensa più caratteri di spazi bianchi (comprese le nuove righe) in un singolo spazio ( risposta ), è necessario racchiudere le funzioni sopra <pre></pre>per visualizzare il risultato nel formato corretto.


Inoltre, esiste un altro modo per stampare il contenuto dell'array con determinate condizioni.

echo

Emette una o più stringhe. Pertanto, se si desidera stampare il contenuto dell'array utilizzando echo, è necessario eseguire il loop nell'array e utilizzare in loop echoper stampare gli elementi dell'array.

foreach ($arr as $key=>$item){
    echo "$key => $item <br>";
}
0 => a 
1 => b 
2 => c 

24

È possibile utilizzare print_r, var_dumpe var_exportFuncations di php:

print_r: Converti in forma leggibile dall'uomo

<?php
echo "<pre>";
 print_r($results); 
echo "</pre>";
?>

var_dump(): ti mostrerà il tipo di cosa e cosa c'è dentro.

var_dump($results);

foreach loop: usando per ogni ciclo è possibile iterare ogni singolo valore di un array.

foreach($results['data'] as $result) {
    echo $result['type'].'<br>';
}


17
foreach($results['data'] as $result) {
    echo $result['type'], '<br />';
}

o echo $results['data'][1]['type'];


Grazie per questo. Puoi dirmi come posso fare ad esempio solo il tipo di array [1]?
EnexoOnoma,

cosa intendi con Array [1]? : o
Andreas Wong,

@andreas Voglio fare eco solo alla COMMUNITY o al 163703342377960. Non l'intero contenuto dell'array ma in particolare
EnexoOnoma

Provaecho $results['data'][1]['page_id'];
Andreas Wong,

8

Non è necessario mettere in loop per vedere i dati nell'array, si può semplicemente fare nel modo seguente

<?php
echo "<pre>";
 print_r($results); 
echo "</pre>";
?>

3

So che questa è una vecchia domanda, ma se vuoi una rappresentazione PHP analizzabile potresti usare:

$parseablePhpCode = var_export($yourVariable,true);

Se fai eco al codice esportato in un file.php (con un'istruzione return) potresti richiederlo come

$yourVariable = require('file.php');

0

Ho controllato la risposta, tuttavia, (per ciascuno) in PHP è deprecato e non funziona più con le ultime versioni di PHP.

Di solito convertiamo un array in una stringa per registrarlo da qualche parte, magari eseguendo il debug o testando ecc.

Vorrei convertire l'array in una stringa facendo:

$Output = implode(",", $SourceArray);

Mentre:

$ output è il risultato (dove verrebbe generata la stringa

",": è il separatore (tra ciascun campo dell'array

$ SourceArray: è l'array di origine.

Spero che aiuti


-2

Passa attraverso e stampa tutti i valori di un array associativo, puoi usare un foreachloop, in questo modo:

foreach($results as $x => $value) {
    echo $value;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.