如何在一个JSON对象中组合多个数组

时间:2017-06-08 16:08:31

标签: php arrays json angular object

我希望将多个数组显示为一个,这样每次创建对象时它都会获得一个键值,然后形成一个更具体的对象,这是一个简短的例子。

现在如何:

name:[{},{},{},{}]
surname:[{},{},{},{}]
phone: [{},{},{},{}]

我希望如何:

xyz:[{name:{}, surname{}, phone{}},
     {name:{}, surname{}, phone{}},
     {name:{}, surname{}, phone{}}]

我在php中导出它,以便我可以在AngularJs ng-repeat指令中使用这个JSON对象。

以下是代码:

  1. 声明数组:

    $name = array();
    $surname= array();
    $phone= array();
    
  2. 分配值每个循环都在

    $name[] = $values ($values wil have the values for the loop)
    .....
    
  3. 测试输出

    <?php echo json_encode($name);
        echo json_encode($surname);
        echo json_encode($phone);
    ?>
    

1 个答案:

答案 0 :(得分:1)

一种简单的方法(run):

$name = array("name 1", "name 2");
$surname = array("surname 1", "surname 2");
$phone = array("phone 1", "phone 2");

$output = array();
for($i = 0; $i < count($name); $i++){
    $output[] = array(
            'name' => $name[$i],
            'surname' => $surname[$i],
            'phone' => $phone[$i],
        );
}

print_r($output);

输出:

Array
(
    [0] => Array
        (
            [name] => name 1
            [surname] => surname 1
            [phone] => phone 1
        )

    [1] => Array
        (
            [name] => name 2
            [surname] => surname 2
            [phone] => phone 2
        )

)

注意:它假设所有数组都具有相同的大小且具有相同的键。

但也许最好不要将每个值保存到3个不同的变量然后运行这个脚本,尝试将值已经保存到数组中作为所需的输出(如果可能的话,当然,因为我们无法知道)。