2012-11-19 270 views
0

我有一堆数组,我想从这些创建一个JSON对象。从数组创建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' 
    } 
} 

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

谢谢!

+0

见的答案,但要注意,'json_encode()'只使用PHP 5.2+工作 – nickhar

回答

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" 
    } 
} 

Codepad demo

+0

非常感谢,没它应该怎样! – holyredbeard

1
$motorbikes = array(
    'motorbike1' => array('brand' => 'Kawasaki', 'color' => 'Blue'), 
    'motorbike2' => array('brand' => 'Yamaha', 'color' => 'Red'), 
); 

echo json_encode($motorbikes); 
3

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

<?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); 

?>