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.