2016-08-13 12 views
1

私はいくつかのデータをjsonに変換しようとしています。入れ子にしたJsonへの配列

$one = ["ID","Name","Address1","Address2"]; 
$two = ["KJS0001","Mike","Cairo","Egypt"]; 
$three = ["KHO0001","Jhon","Paris","France"]; 

私が取得したい出力がある:

{ 
    "KJS0001":{ 
    "Name":"Mike", 
    "Address":["Cairo","Egypt"] 
    }, 
    "KHO0001":{ 
    "Name":"Jhon", 
    "Address":["Paris","France"] 
    } 
} 

ネストされた属性の量は、住所(アドレス1からのデータを含むを作成する方法も変化し、IDとそのインデックス付き以来のデータは次のようになりますおよびaddress2配列)。誰でも助けてくれますか?

+0

正確に何を変えるのだろうか?そのような変数の数は$ 3、$ 4などとなりますか?または、いいえ。パラメータid、nameなどの? –

+0

パラメータidとそれにネストしたアドレス(address1とaddress2) – Reint

答えて

2

これは一つの可能​​な解決策は、新しい配列を作成し、json_encode

<?php 
    $data = array(); 
    //$columns = ["ID","Name","Address1","Address2"]; 
    $data[] = ["KJS0001","Mike","Cairo","Egypt"]; 
    $data[] = ["KHO0001","Jhon","Paris","France"]; 
    $result = array(); 
    foreach($data as $value){ 
     $result[] = [$value[0] => ["Name"=>$value[1],"Address"=>[$value[2],$value[3]] ] ]; 
    } 
    echo json_encode($result); 
?> 

列名を使用することで、あなたは列が固定されている場合は必要ありません$oneに言及しました。

ライブデモ:https://eval.in/621908

出力は次のとおりです。

[ 
    {"KJS0001":{"Name":"Mike","Address":["Cairo","Egypt"]}}, 
    {"KHO0001":{"Name":"Jhon","Address":["Paris","France"]}} 
] 
+0

ありがとうございました:) – Reint

関連する問題