Jak wykonać echo lub wydrukować tablicę w PHP?


198

Mam tę tablicę

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

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

Moje pytanie brzmi: jak mogę powtórzyć treść bez tej struktury? próbowałem

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

Odpowiedzi:


125

To wystarczy

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

Dziękuję Ci za to. Czy możesz mi powiedzieć, jak mogę powtórzyć na przykład tylko typ tablicy [1]?
EnexoOnoma

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

Co jeśli nie mam żadnego klucza data?
Pratik Butani

467

Aby zobaczyć zawartość tablicy , możesz użyć.

1) print_r($array); lub jeśli chcesz ładnie sformatowaną tablicę, to:

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

2) Użyj, var_dump($array)aby uzyskać więcej informacji o zawartości tablicy, takich jak typ danych i długość.

3) możesz zapętlić tablicę używając php foreach();i uzyskać pożądane wyjście. więcej informacji na temat foreach na stronie dokumentacji php:
http://in3.php.net/manual/en/control-structures.foreach.php


2
Ładnie i elegancko. Możesz zmienić tag zamykający w # 1 z <pre /> na </pre>.
Michael

1
Ta odpowiedź nie rozwiązuje błędu popełnionego przez OP.
Shiplu Mokaddim

2
czy możesz wyjaśnić, w jaki sposób konstrukcja <pre> </pre> sprawia, że ​​ten ekran jest „ładnie”?
Robin Andrews,

1
Tag @Robin <pre> wyświetla nowe wiersze i tabulacje, gdy są wyprowadzane przez print_r (); bez <pre> zobaczyłbyś bałagan niesformatowane granice danych. Aby zobaczyć, że jest sformatowany, powinieneś zobaczyć źródło strony HTML.
jc

96

Jeśli chcesz tylko poznać treść bez formatu (np. W celu debugowania), używam tego:

echo json_encode($anArray);

Pokaże to jako JSON, który jest dość czytelny dla ludzi.


Chciałem wyodrębnić niektóre dane z html - phpdokumentu metodą Cordova InAppBrowser executeScript, json_encode($array)ale nie udało mi się tego! Wielkie dzięki @Mark E
Hamid Araghi

31

Istnieje wiele funkcji drukowania treści tablic, z których każda ma funkcje.

print_r()

Wyświetla czytelne dla człowieka informacje o zmiennej.

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


var_dump()

Wyświetla uporządkowane informacje o wyrażeniach, które obejmują ich typ i wartość.

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


var_export()

Wyświetla uporządkowane informacje o danej zmiennej, która zwróciła reprezentację jest poprawnym kodem PHP.

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

Zauważ, że ponieważ przeglądarka zagęszcza wiele znaków spacji (w tym znaki nowej linii) do pojedynczej spacji ( odpowiedzi ), musisz zawinąć powyższe funkcje, <pre></pre>aby wyświetlić wynik w poprawnym formacie.


Istnieje również inny sposób drukowania zawartości tablicy z pewnymi warunkami.

echo

Wyjmij jeden lub więcej ciągów. Jeśli więc chcesz wydrukować zawartość tablicy echo, musisz wykonać pętlę i użyć pętli echodo drukowania elementów tablicy.

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

24

Można użyć print_r, var_dumpa var_exportfuncations PHP:

print_r: Przekształć w formę czytelną dla człowieka

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

var_dump(): pokaże ci rodzaj rzeczy oraz jej zawartość.

var_dump($results);

foreach loop: za pomocą każdej pętli można iterować każdą wartość tablicy.

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


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

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


Dziękuję Ci za to. Czy możesz mi powiedzieć, jak mogę powtórzyć na przykład tylko typ tablicy [1]?
EnexoOnoma

co masz na myśli przez Array [1]? : o
Andreas Wong

@ andreas Chcę powtórzyć tylko wspólnotę lub 163703342377960. Nie całą zawartość tablicy, ale konkretnie
EnexoOnoma

Spróbujecho $results['data'][1]['page_id'];
Andreas Wong

8

Nie musisz wstawiać pętli for, aby zobaczyć dane w tablicy, możesz to zrobić w następujący sposób

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

3

Wiem, że to stare pytanie, ale jeśli chcesz analizowalną reprezentację PHP, możesz użyć:

$parseablePhpCode = var_export($yourVariable,true);

Jeśli wyeksportujesz eksportowany kod do pliku file.php (z instrukcją return), możesz go wymagać jako

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

0

Sprawdziłem jednak odpowiedź (dla każdego) w PHP jest przestarzała i nie działa już z najnowszymi wersjami php.

Zwykle konwertujemy tablicę na ciąg, aby gdzieś się zalogować, być może debugowanie lub testowanie itp.

Przekształciłbym tablicę na ciąg wykonując:

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

Natomiast:

Wynik $ jest wynikiem (gdzie zostałby wygenerowany ciąg

„,”: jest separatorem (między każdym polem tablicy

$ SourceArray: to tablica źródłowa.

mam nadzieję, że to pomoże


-2

Pętlę i wydrukuj wszystkie wartości tablicy asocjacyjnej, możesz użyć foreachpętli, jak poniżej:

foreach($results as $x => $value) {
    echo $value;
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.