2016-08-13 141 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"] 
    } 
} 

由于嵌套属性的数量而变化,其ID为索引还怎么让地址(包含来自地址1数据和地址2数组)。谁能帮我?

+0

究竟会有所不同?像它这样的变量可以是$ 3,$ four..etc?或者没有。参数id,名称等? –

+0

基于参数ID,它嵌套到名称,地址(地址1和地址2) – 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