2013-01-31 141 views
0

我想從php函數(或直接從我的BDD)創建json文件。將php數組轉換爲JSON文件

我有我的數據庫SQL編寫PHP函數

這是我的功能,在我的數據庫寫(它的Magento的,但它的工作原理):

$data = array('image'=>$my_upload->file_copy,'shopid'=>$customerid,'newsid'=>1); 
$model = Mage::getModel('newsimagestable/newsimagestable')->setData($data); 

馬里蘭州表db_activity

shopid  newsid   imgid     image 
    7   1    1      1.jpg 
    7   1    2      2.jpg 
    7   1    3      3.jpg 

而且我知道我把它轉換成Json這個功能:

$actArray = array(); 
    $activityAll = Mage::helper(eventdemo)->getactivitytest(7); //get my table db_activity 

     foreach ($activityAll as $data){     
      array_push($actArray, "images:".$data->getData('image'),"thumb:".$data->getData('image'));    
     }; 

    file_put_contents('data.json', stripslashes(json_encode($actArray))); 

,我只可以得到這種格式的JSON文件:

["images:1.jpg","thumb:1_m.jpg","images:2.jpg","thumb:2_m.jpg","images:3.jpg","thumb:3_m.jpg"] 

但我想有這樣的格式(因此有多個項的數組,我認爲):

[ 
{ "thumb": "image1_m.jpg", "image": "image1.jpg" }, 
{ "thumb": "image2_m.jpg", "image": "image2.jpg" } ] 

這是可能的?

感謝

+0

是的,我做了json_encode(),但也許我做了錯誤的方式: file_put_contents('數據。 json',stripslashes(json_encode($ actArray))); – Kaherdin

回答

2

而不是

foreach ($activityAll as $data){     
      array_push($actArray, "images:".$data->getData('image'),"thumb:".$data->getData('image'));    
     }; 

你應該做的

foreach ($activityAll as $data){     
      array_push($actArray, array("images" => $data->getData('image'), "thumb" => $data->getData('image')));    
     }; 
+0

作品完美,謝謝。 – Kaherdin