0

我有一堆数组,我想从这些数组中创建一个 JSON 对象。

示例数组:

$brand = array('Kawasaki', 'Yamaha', 'Puch', 'Honda');
$colors = array('blue', 'red', 'yellow', 'blue');

我想要的输出:

$motorbikes = {
    motorbike1 {
        brand: 'Kawasaki',
        color: 'blue'
    },
    motorbike2 {
        brand: 'Yamaha',
        color: 'red'
    },
    motorbike3 {
        brand: 'Puch',
        color: 'yellow'
    },
    motorbike4 {
        brand: 'Honda',
        color: 'blue'
    }
}

实现这一目标的最佳和最优雅的方式是什么?

谢谢!

4

4 回答 4

3

最简单的方法是json_encode()

$brand_json = json_encode($brand);

http://php.net/manual/en/function.json-encode.php

不过,修复这些数组。:

$brand = array('Kawasaki', 'Yamaha', 'Puch', 'Honda');
$colors = array('blue', 'red', 'yellow', 'blue');
于 2012-11-19T17:20:39.573 回答
2

我只是把它放在一起,它不是你想要的输出的完美匹配,但它应该让你朝着你需要的方向前进。

<?php

$brand = array('Kawasaki', 'Yamaha', 'Puch', 'Honda');
$colors = array('blue', 'red', 'yellow', 'blue');

$temp = array();
for ($i = 0; $i < count($brand); $i++)  {
    $temp["motorbike$i"]['brand'] = $brand[$i];
    $temp["motorbike$i"]['color'] = $colors[$i];
}

echo json_encode($temp);

?>
于 2012-11-19T17:23:55.227 回答
1
$brand = array('Kawasaki', 'Yamaha', 'Puch', 'Honda');
$colors = array('blue', 'red', 'yellow', 'blue');

$motorbikes = array();

for($i=0; $i<count($brand); $i++)
{
    $motorbikes['motorbike' . ($i+1)] = array(
        'brand' => $brand[$i],
        'color' => $colors[$i]
    );
}

echo json_encode($motorbikes);

输出(没有缩进)

{
    "motorbike1":{
        "brand":"Kawasaki",
        "color":"blue"
    },
    "motorbike2":{
        "brand":"Yamaha",
        "color":"red"
    },
    "motorbike3":{
        "brand":"Puch",
        "color":"yellow"
    },
    "motorbike4":{
        "brand":"Honda",
        "color":"blue"
    }
}

键盘演示

于 2012-11-19T17:30:43.900 回答
1
$motorbikes = array(
    'motorbike1' => array('brand' => 'Kawasaki', 'color' => 'Blue'),
    'motorbike2' => array('brand' => 'Yamaha', 'color' => 'Red'),
);

echo json_encode($motorbikes);
于 2012-11-19T17:22:49.003 回答