2009-03-12 7 views
0

たとえば、カーベンダーの配列を作成するPHPでデータ構造を作成する必要があります。これらの配列要素のそれぞれには、そのベンダーの車種を保持する子配列が含まれています。PHPでこのjsonオブジェクトを正しくフォーマットするには

だから、私は物事のJavaScriptの側に私は

alert(cars.vendor[0].type[1]) 

ような何かを行うことができるようにPHPで、このデータ構造を作成できるようにする必要があり

$cars['toyota'] = array("camry", "etc"); 

のようなものを持っていると思いますどのようにデータ構造をPHPの終わりにエンコードするのですか?

答えて

1

PHP> 5.2.0の場合は、json_encode($cars)を試してください。

これは、配列内の配列を作るだろうが、それはあなたがあなたのjavascriptのサンプルを持っている何を与えることはありません。

$vendors = array(
    'toyota' => array('camry', 'etc.'), 
    'honda' => array('civic', 'fit', 'etc.'), 
); 

あなたはおそらくあなたを得るためにvendors[0].types[1]のすべての埋め込みレベルを必要としません情報が整理される。

+0

私の質問でどのように配列json_encodeをして、私はそれしたい形式を吐く前に、PHPで見ていますか?配列の配列が私が探しているものです。 – Coocoo4Cocoa

0

ねえ、連想配列とオブジェクトはJavascriptで同じように扱われています。このように、PHPの構造

$cars['toyota'] = array("camry", "etc"); 

はJSONでこれに相当します:

var cars = { "toyota": [ "camry", "etc" ] }; 

あなたは簡単にjson_encode機能とJSON 1にPHP構造を変換することができます。 JSON形式の詳細については、json.orgを参照してください。

1

これは、あなたが望むどのようにそれを行うには、それを設定する方法です:あなたは、あまりにも、そのオブジェクトに他のものを持っている場合を除き

<script> 
    var test = <?php 
     print json_encode(array('vendor' => array(
      'toyota' => array('type' => array('camry','siena')), 
      'mitsubishi' => array('type' => array('mirage','galant')) 
     ))); 
    ?>; 
    alert(test.vendor['toyota'].type[1]); // siena 
    alert(test.vendor['mitsubishi'].type[0]); // mirage 
</script> 

は、私は完全にそれのベンダーとタイプの部分をスキップして推薦する、とこのようにやって何か:

<script> 
    var vendors = <?php 
     print json_encode(array(
      'toyota' => array('camry','siena'), 
      'mitsubishi' => array('mirage','galant') 
     )); 
    ?>; 
    alert(vendors['toyota'][1]); // siena 
    alert(vendors['mitsubishi'][0]); // mirage 
</script> 
0
$cars = array(); 
$cars['toyota'] = array("camry", "etc"); 
$json = json_encode($cars); 

はあなたに

var cars = { 
    toyota: [ 'camry', 'etc' ] 
}; 
のjavascriptの構造体を与えます

あなたがしたい場合は、PHPの配列が

$cars = array(
    'vendor' => array(
     array('type' => array("camry", "etc")) 
    ) 
); 
$json = json_encode($cars); 

のようにしかし、あなたはおそらくvendor -partと使用を飛ばしてくださいabove指摘されたようになりますalert(cars.vendor[0].type[1])呼び出すことができます

var cars = { 
    vendor: [ { type: [ 'camry', 'etc' ] } ] 
} 

鍵として適切なベンダー名。ここで

0

は、私はそれを行うだろう方法は次のとおりです。

class EmptyObject {} 
$cars = new EmptyObject(); 
$cars->vendor[] = array('type' => array('camry','sienna')); 
$cars->vendor[] = array('type' => array('mirage','galant')); 
$json = json_encode($cars); 
print $json; 
// this produces: 
// {"vendor":[{"type":["camry","sienna"]},{"type":["mirage","galant"]}]} 
0

さて、あなたはPHP 5を使用している場合、多くはすでに答えているとしてあなたは、機能json_encodeを使用することができます。

noyの場合、PHP 4を使用している場合はsomething extra like thisが必要です。

1
$data = array(); 
$data['userDetails'] =array(array("username"=>$username,"password"=>$password)); 
$data["wsfunction"]="user_authentication"; 

は、JSONエンコード機能の出力は次のように

{"userDetails":[{"username":"Username","password":"Password"}],"wsfunction":"user_authentication"}