webentwicklung-frage-antwort-db.com.de

Wie erstelle ich ein Array für JSON mit PHP?

Aus PHP -Code möchte ich ein Json-Array erstellen:

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

Wie kann ich das machen?

117
Mimmo

Leicht peasy lemon squeezy: http://www.php.net/manual/de/function.json-encode.php

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

echo json_encode($arr);
?>

Auf der oben genannten Seite gibt es einen Beitrag von andyrusterholz at g-m-a-i-l dot c-o-m, der auch komplexe verschachtelte Arrays verarbeiten kann (falls das Ihre Sache ist).

144
David Titarenco

Verwenden Sie das native json_encode von PHP wie folgt:

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

echo json_encode($arr);
?>

Update: Um Ihre Frage im Kommentar zu beantworten. Du machst es so:

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

Einfach: Erstellen Sie einfach ein (verschachteltes) PHP - Array und rufen Sie json_encode auf. Numerische Arrays werden in JSON-Listen ([]) übersetzt, assoziative Arrays und PHP Objekte in Objekte ({}). Beispiel:

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

Gibt Ihnen:

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

Die beste Methode, die Sie zum Erstellen von Json in PHP unbedingt verwenden sollten, ist, zunächst die Werte im ASSOCIATIVE-Array zu konvertieren.

Danach einfach mit json_encode($associativeArray) kodieren. Ich denke, es ist der beste Weg, Json in PHP zu erstellen, denn wenn wir die Ergebnis-SQL-Abfrage in PHP meistens abrufen, haben wir Werte mit der fetch_assoc-Funktion erhalten, die auch ein assoziatives Array zurückgibt.

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

...usw.

Nachdem.

json_encode($associativeArray);
13
Parveen Verma

auch für array können sie eine kurze annotattion verwenden:

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

echo json_encode($arr);
3
dwaskowski
$json_data = '{ "Languages:" : [ "English", "Spanish" ] }';
$lang_data = json_decode($json_data);
var_dump($lang_data);
1
Matthew

Wenn Sie nur diese eine Zeile eingeben, erhalten Sie ein JSON-Array.

echo json_encode($array);

Normalerweise verwenden Sie json_encode, Um Daten von einer iOS- oder Android - App zu lesen. Stellen Sie also sicher, dass Sie nichts anderes als das genaue JSON-Array wiedergeben.

1
theModerator713

So kann ich es mit Hilfe der von @tdammers angegebenen Lösung tun. .__ Die folgende Zeile wird in der foreach-Schleife platziert.

$array[] = array('power' => trim("Some value"), 'time' => "time here" );

Und dann kodieren Sie das Array mit der Json-Kodierungsfunktion

json_encode(array('newvalue'=> $array), 200)
0
iZeeshan
<?php 

    $username=urldecode($_POST['log_user']);

    $user="select * from tbl_registration where member_id= '".$username."' ";
    $rsuser = $obj->select($user);
    if(count($rsuser)>0)
    {
        //   (Status if 2 then its expire)    (1= use) ( 0 = not use)

        $cheknew="select name,ldate,offer_photo  from tbl_offer where status=1 ";
        $rscheknew = $obj->selectjson($cheknew);

        if(count($rscheknew)>0)
        {

             $nik=json_encode($rscheknew);
            echo "{\"status\" : \"200\" ,\"responce\" : \"201\", \"message\" : \"Get Record\",\"feed\":".str_replace("<p>","",$nik). "}";
        }
        else
        {
            $row2="No Record Found";
            $nik1=json_encode($row2);
            echo "{\"status\" : \"202\",  \"responce\" : \"604\",\"message\" : \"No Record Found \",\"feed\":".str_replace("<p>","",$nik1). "}";
        }
    }
    else
    {
        $row2="Invlid User";
        $nik1=json_encode($row2);
        echo "{\"status\" : \"404\", \"responce\" : \"602\",\"message\" : \"Invlid User \",\"feed\":".str_replace("<p>","",$nik1). "}";
    }

 ?>
0
Ajay Prajapati