2012-11-19 185 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); 

?>