Wie kann man ein Array in PHP wiedergeben oder drucken?

198

Ich habe dieses Array

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

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

Meine Frage ist, wie ich den Inhalt ohne diese Struktur einfach wiedergeben kann. Ich habe es versucht

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

Antworten:

124

Das wird es tun

foreach($results['data'] as $result) {
    echo $result['type'], '<br>';
}
Shiplu Mokaddim
quelle
Danke dafür. Können Sie mir sagen, wie ich zum Beispiel nur den Typ des Arrays [1] wiedergeben kann?
EnexoOnoma
7
@ Kaoukkosecho $results['data'][1]['type'];
Shiplu Mokaddim
Was ist, wenn ich keinen Schlüssel habe data?
Pratik Butani
467

Um den Inhalt des Arrays anzuzeigen, können Sie verwenden.

1) print_r($array); oder wenn Sie ein schön formatiertes Array wünschen, dann:

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

2) Verwenden Sie var_dump($array)diese Option, um weitere Informationen zum Inhalt des Arrays wie Datentyp und Länge abzurufen.

3) Sie können das Array mit PHPs schleifen foreach();und die gewünschte Ausgabe erhalten. Weitere Informationen zu foreach finden Sie auf der Dokumentationswebsite von php:
http://in3.php.net/manual/en/control-structures.foreach.php

Ibrahim Azhar Armar
quelle
2
Schön und elegant. Möglicherweise möchten Sie das schließende Tag in # 1 von <pre /> in </ pre> ändern.
Michael
1
Diese Antwort geht nicht auf den Fehler ein, den OP gemacht hat.
Shiplu Mokaddim
2
Können Sie erklären, wie das <pre> </ pre> -Konstrukt diese Anzeige "schön" macht?
Robin Andrews
1
Das @ Robin <pre> -Tag zeigt neue Zeilen und Tabellen an, wie sie von print_r () ausgegeben werden. Ohne <pre> würden Sie unordentliche unformatierte Datengrenzen sehen. Um es formatiert zu sehen, sollten Sie dann die HTML-Seitenquelle anzeigen.
jc
96

Wenn Sie den Inhalt nur ohne Format kennen möchten (z. B. zum Debuggen), verwende ich Folgendes:

echo json_encode($anArray);

Dies zeigt es als JSON, das ziemlich menschlich lesbar ist.

Mark E.
quelle
Ich wollte einige Daten html - phpmit der Cordova- InAppBrowser executeScriptMethode aus einem Dokument extrahieren , ohne dass json_encode($array)ich das nicht erreichen könnte! Vielen Dank @Mark E
Hamid Araghi
31

Es gibt mehrere Funktionen zum Drucken von Array-Inhalten, die jeweils über Funktionen verfügen.

print_r()

Druckt lesbare Informationen zu einer Variablen.

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


var_dump()

Zeigt strukturierte Informationen zu Ausdrücken an, einschließlich Typ und Wert.

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


var_export()

Zeigt strukturierte Informationen zu der angegebenen Variablen an, deren zurückgegebene Darstellung gültiger PHP-Code ist.

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

Beachten Sie, dass der Browser mehrere Leerzeichen (einschließlich Zeilenumbrüche) in einem einzigen Leerzeichen zusammenfasst ( Antwort ) zusammenfasst, müssen Sie die obigen Funktionen<pre></pre> , um das Ergebnis im richtigen Format anzuzeigen.


Es gibt auch eine andere Möglichkeit, Array-Inhalte unter bestimmten Bedingungen zu drucken.

echo

Geben Sie eine oder mehrere Zeichenfolgen aus. Wenn Sie also Array-Inhalte mit drucken möchten echo, müssen Sie das Array durchlaufen und echoArray-Elemente in einer Schleife drucken.

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

Sie können verwendet werden print_r, var_dumpund var_exportfuncations von PHP:

print_r: In menschliche Readble-Form konvertieren

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

var_dump(): zeigt Ihnen den Typ der Sache sowie was darin enthalten ist.

var_dump($results);

foreach loop: Mit für jede Schleife können Sie jeden Wert eines Arrays iterieren.

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

Haben Sie versucht print_r, es in lesbarer Form zu drucken?

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

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

Rezigned
quelle
Danke dafür. Können Sie mir sagen, wie ich zum Beispiel nur den Typ des Arrays [1] wiedergeben kann?
EnexoOnoma
Was meinst du mit Array [1]? : o
Andreas Wong
@andreas Ich möchte nur die COMMUNITY oder die 163703342377960 wiedergeben. Nicht den gesamten Inhalt des Arrays, sondern speziell
EnexoOnoma
Versuchen Sieecho $results['data'][1]['page_id'];
Andreas Wong
8

Sie müssen keine for-Schleife setzen, um die Daten im Array anzuzeigen. Sie können dies einfach auf folgende Weise tun

<?php
echo "<pre>";
 print_r($results); 
echo "</pre>";
?>
Vinod Kirte
quelle
3

Ich weiß, dass dies eine alte Frage ist, aber wenn Sie eine analysierbare PHP-Darstellung wünschen, können Sie Folgendes verwenden:

$parseablePhpCode = var_export($yourVariable,true);

Wenn Sie den exportierten Code in eine Datei.php (mit einer return-Anweisung) übertragen, benötigen Sie ihn möglicherweise als

$yourVariable = require('file.php');
Niclas
quelle
0

Ich habe die Antwort jedoch überprüft, (für jede) in PHP ist veraltet und funktioniert nicht mehr mit den neuesten PHP-Versionen.

Normalerweise konvertieren wir ein Array in einen String, um es irgendwo zu protokollieren, vielleicht beim Debuggen oder Testen usw.

Ich würde das Array in einen String konvertieren, indem ich Folgendes mache:

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

Wohingegen:

$ output ist das Ergebnis (wo die Zeichenfolge generiert werden würde

",": ist das Trennzeichen (zwischen jedem Array-Feld

$ SourceArray: ist Ihr Quellarray.

ich hoffe das hilft

Heider Sati
quelle
-2

Durchlaufen und drucken Sie alle Werte eines assoziativen Arrays. Sie können eine foreachSchleife wie die folgende verwenden:

foreach($results as $x => $value) {
    echo $value;
}
A. Morales
quelle