146 votes

Comment créer un tableau pour JSON en utilisant PHP ?

A partir du code PHP, je veux créer un tableau json :

[
  {"region":"valore","price":"valore2"},
  {"region":"valore","price":"valore2"},
  {"region":"valore","price":"valore2"}
]

Comment puis-je le faire ?

1 votes

173voto

David Titarenco Points 17148

Easy peasy lemon squeezy : http://www.php.net/manual/en/function.json-encode.php

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

Il y a un post par andyrusterholz at g-m-a-i-l dot c-o-m sur la page susmentionnée qui peut également gérer des tableaux imbriqués complexes (si c'est votre truc).

2 votes

Dang, homie, tu as été instantané sur cette réponse = ). J'étais excité par la question facile = )

2 votes

J'ai ce code while($row=mysql_fetch_assoc($query_insert)) { $control=array('regione'=>$row["regione"],'totale'=>$row["prezzi"]) ; } print (json_encode(%control)) ; mais il en ressort {"regione" : "Puglia", "totale" : "5.15"} not [{..},{..}]

2 votes

Ajoutez 1 pour la référence au citron. :-)

137voto

Shef Points 21595

Utilisez la fonction native de PHP json_encode comme ceci :

<?php
$arr = array(
    array(
        "region" => "valore",
        "price" => "valore2"
    ),
    array(
        "region" => "valore",
        "price" => "valore2"
    ),
    array(
        "region" => "valore",
        "price" => "valore2"
    )
);

echo json_encode($arr);
?>

Mise à jour : Pour répondre à votre question dans le commentaire. Vous faites comme ceci :

$named_array = array(
    "nome_array" => array(
        array(
            "foo" => "bar"
        ),
        array(
            "foo" => "baz"
        )
    )
);
echo json_encode($named_array);

50voto

tdammers Points 14202

Simple : Il suffit de créer un tableau PHP (imbriqué) et d'appeler json_encode sur elle. Les tableaux numériques se traduisent par des listes JSON ( [] ), les tableaux associatifs et les objets PHP se traduisent par des objets ( {} ). Exemple :

$a = array(
        array('foo' => 'bar'),
        array('foo' => 'baz'));
$json = json_encode($a);

Il vous donne :

[{"foo":"bar"},{"foo":"baz"}]

1 votes

Excusez-moi, mais si je veux {"nome_array" : [{"foo":"bar"},{"foo":"baz"}]} ??

3 votes

Relisez mon message. Si vous voulez que quelque chose soit traduit en un objet JSON, faites-en un tableau associatif en PHP (où les clés sont des chaînes). Si vous voulez qu'il soit traduit en une liste JSON, faites-en un tableau simple (avec des clés entières implicites). La valeur de chaque élément du tableau peut à son tour être un tableau, ce qui est ce que vous voulez.

0 votes

Merci, cela a répondu à ma question également.

16voto

Parveen Points 438

La meilleure façon de créer un fichier json en php est de convertir les valeurs dans un tableau ASSOCIATIF.

Après cela, il suffit de coder en utilisant json_encode($associativeArray) . Je pense que c'est la meilleure façon de créer un json en php parce que chaque fois que nous récupérons le résultat d'une requête sql en php, la plupart du temps nous obtenons les valeurs en utilisant fetch_assoc qui renvoient également un tableau associatif.

$associativeArray = array();
$associativeArray ['FirstValue'] = 'FirstValue';

... etc.

Après ça.

json_encode($associativeArray);

9voto

dwaskowski Points 315

Pour les tableaux, vous pouvez également utiliser des annotations courtes :

$arr = [
    [
        "region" => "valore",
        "price" => "valore2"
    ],
    [
        "region" => "valore",
        "price" => "valore2"
    ],
    [
        "region" => "valore",
        "price" => "valore2"
    ]
];

echo json_encode($arr);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X