Comment faire écho ou imprimer un tableau en PHP?

199

J'ai ce tableau

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

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

Ma question est de savoir comment puis-je simplement faire écho au contenu sans cette structure? j'ai essayé

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

Réponses:

125

Cela fera l'affaire

foreach($results['data'] as $result) {
    echo $result['type'], '<br>';
}
Shiplu Mokaddim
la source
Merci pour ça. Pouvez-vous me dire comment puis-je faire écho par exemple uniquement au type du tableau [1]?
EnexoOnoma
7
@Kaoukkosecho $results['data'][1]['type'];
Shiplu Mokaddim
Et si je n'ai pas de clé comme data?
Pratik Butani
467

Pour voir le contenu du tableau que vous pouvez utiliser.

1) print_r($array); ou si vous voulez un tableau bien formaté, alors:

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

2) utilisez var_dump($array)pour obtenir plus d'informations sur le contenu du tableau, comme le type de données et la longueur.

3) vous pouvez boucler le tableau en utilisant des php foreach();et obtenir la sortie souhaitée. plus d'informations sur foreach dans le site de documentation de php:
http://in3.php.net/manual/en/control-structures.foreach.php

Ibrahim Azhar Armar
la source
2
Agréable et élégant. Vous souhaiterez peut-être modifier la balise de fermeture # 1 de <pre /> à </pre>.
Michael
1
Cette réponse ne corrige pas l'erreur commise par OP.
Shiplu Mokaddim
2
pourriez-vous expliquer comment la construction <pre> </pre> rend cet affichage "bien"?
Robin Andrews
1
La balise @Robin <pre> affiche les nouvelles lignes et tabulations telles qu'elles sont sorties par print_r (); sans <pre>, vous verriez des limites de données non formatées en désordre. Pour le voir formaté, vous devez alors afficher la source de la page html.
jc
97

Si vous voulez simplement connaître le contenu sans format (par exemple à des fins de débogage), j'utilise ceci:

echo json_encode($anArray);

Cela le montrera comme un JSON qui est assez lisible par l'homme.

Mark E
la source
Je voulais extraire quelques données d'un html - phpdocument en utilisant la InAppBrowser executeScriptméthode Cordova , sans que json_encode($array)je ne puisse y arriver! Merci beaucoup @Mark E
Hamid Araghi
31

Il existe plusieurs fonctions pour imprimer le contenu de la matrice qui ont chacune des fonctionnalités.

print_r()

Imprime des informations lisibles par l'homme sur une variable.

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


var_dump()

Affiche des informations structurées sur les expressions, notamment leur type et leur valeur.

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


var_export()

Affiche des informations structurées sur la variable donnée dont la représentation retournée est un code PHP valide.

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

Notez que le navigateur condensant plusieurs espaces (y compris les retours à la ligne) en un seul espace ( réponse ), vous devez encapsuler les fonctions ci-dessus <pre></pre>pour afficher le résultat au format correct.


Il existe également une autre façon d’imprimer le contenu de la matrice sous certaines conditions.

echo

Générez une ou plusieurs chaînes. Donc, si vous souhaitez imprimer le contenu d'un tableau à l'aide echo, vous devez parcourir le tableau et l'utiliser en boucle echopour imprimer les éléments du tableau.

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

Vous pouvez utiliser print_r, var_dumpet var_exportfuncations de php:

print_r: Convertir en forme lisible par l'homme

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

var_dump(): vous montrera le type de la chose ainsi que son contenu.

var_dump($results);

foreach loop: en utilisant pour chaque boucle, vous pouvez itérer chaque valeur d'un tableau.

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

Avez-vous essayé print_rde l'imprimer sous une forme lisible par l'homme?

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

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

Rezigned
la source
Merci pour ça. Pouvez-vous me dire comment puis-je faire écho par exemple uniquement au type du tableau [1]?
EnexoOnoma
qu'entendez-vous par tableau [1]? : o
Andreas Wong
@andreas Je veux faire écho uniquement à la COMMUNAUTÉ ou au 163703342377960. Pas tout le contenu de la matrice mais spécifiquement
EnexoOnoma
Essayezecho $results['data'][1]['page_id'];
Andreas Wong
8

Vous n'avez pas besoin de mettre en boucle pour voir les données dans le tableau, vous pouvez simplement le faire de la manière suivante

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

Je sais que c'est une vieille question mais si vous voulez une représentation PHP analysable, vous pouvez utiliser:

$parseablePhpCode = var_export($yourVariable,true);

Si vous répercutez le code exporté dans un fichier.php (avec une instruction de retour), vous pouvez l'exiger comme

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

J'ai vérifié la réponse cependant, (pour chacun) en PHP est obsolète et ne fonctionne plus avec les dernières versions de php.

Habituellement, nous convertissons un tableau en chaîne pour l'enregistrer quelque part, peut-être en déboguant ou en testant etc.

Je convertirais le tableau en chaîne en faisant:

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

Tandis que:

$ output est le résultat (où la chaîne serait générée

",": est le séparateur (entre chaque champ du tableau

$ SourceArray: est votre tableau source.

J'espère que ça aide

Heider Sati
la source
-2

Parcourez et imprimez toutes les valeurs d'un tableau associatif, vous pouvez utiliser une foreachboucle, comme ceci:

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