web-dev-qa-db-ja.com

PHPを使用してJSON用の配列を作成する方法

PHPコードからjson配列を作成したいです。

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

これどうやってするの?

118
Mimmo

簡単なのぞき見レモンスクイーズ: 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);
?>

前述のページにandyrusterholz at g-m-a-i-l dot c-o-mによる投稿があります。これも複雑な入れ子になった配列を扱うことができます(それがあなたのものなら)。

145
David Titarenco

次のように、PHPのネイティブ json_encode を使用してください。

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

echo json_encode($arr);
?>

更新:あなたの質問にコメントで答えます。あなたはこれをこのようにします:

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

シンプル:(ネストした)PHP配列を作成し、それにjson_encodeを呼び出すだけです。数値配列はJSONリスト([])に変換され、連想配列とPHPオブジェクトはオブジェクト({})に変換されます。例:

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

あなたにあげる:

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

あなたがphpでjsonを作成するために毎回行かなければならない最善の方法は、最初にASSOCIATIVE配列の値を変換することです。

その後は単にjson_encode($associativeArray)を使ってエンコードするだけです。私はこれがphpでjsonを作成するための最良の方法だと思います。なぜなら、ほとんどの場合、phpでsql queryから結果フォームを取得するときは、fetch_assoc関数を使用して値を取得するためです。

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

...など.

その後。

json_encode($associativeArray);
13
Parveen Verma

配列に対しても短い注釈を使用できます:

$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

この一行を入力するだけでjson配列が得られます。

echo json_encode($array);

通常は、iOSまたはAndroidアプリからデータを読み取るためにjson_encodeを使用します。そのため、正確なJSON配列以外のものをエコーし​​ないようにしてください。

1
theModerator713

それが、私が以下の@tdammersによって与えられた解決策の助けを借りてできることです。次の行はforeachループの内側に配置されます。

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

次に、配列をjsonエンコード機能でエンコードします。

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