2016-05-30 87 views
-2

幫我把下面的數組轉換成json。 我試圖轉換數組。以下代碼Php數組和json

Array 
(
[0] => Array 
    (
     [c_code] => 200001 
     [itemname] => 303 10CAP 
     [c_pack_code] => PK0075 
     [c_web_img_link] => 
    ) 

[1] => Array 
    (
     [c_code] => 200005 
     [itemname] => 3P 4TAB 
     [c_pack_code] => 
     [c_web_img_link] => 
    ) 
) 

目前的結果是

public function searchOrder($idx, $data) { 

    if (!empty($data)) {    


     $result = OrderbukModel::func_get_searchlist($idx,$data); 
     if (!empty($result)) { 
      $resultArray[] = $result; 
      print_r(json_encode($result)); 
     } else { 
      $resultArray[$idx] = ["Mysql returns empty result !"]; 
      print_r(json_encode($resultArray)); 
      exit; 
     } 
    } 
} 

現在,我得到的結果是一樣

[{"c_code":"200001","itemname":"303 10CAP","c_pack_code":"PK0075","c_web_img_link":""},{"c_code":"200005","itemname":"3P 4TAB","c_pack_code":"","c_web_img_link":""}] 

但我需要的結果如下

[{"c_code":"2000001","c_code":"200005"}, 
{"itemname":"303 10CAP","itemname":"3P 4TAB"}, 
{"c_pack_code":"PK0075","c_pack_code":""}, 
{"c_web_img_link":"","c_web_img_link":""}] 
+0

歐凱其可能的,只是讓兩個不同的陣列,並在年底將它們合併,並對其進行編碼 –

+1

什麼你正在試圖做的顯然要比簡單的轉換更JSON,因爲你已經做到了,並且不滿意。在這種情況下,你需要用'foreach'自己做。向我們展示您的最佳嘗試,或者通過回答自己的問題,如果您成功了,或者在失敗時作爲附加信息。 –

+0

我可以給你一個例子與你的數組,我應該? –

回答

1

例你怎麼能做到e數組中的json。將數據收集到兩個不同的數組中,並在循環之後將它們存儲並將結果存儲在另一個數組中,然後對它們進行編碼。

注意:您所需的JSON不是有效格式,不能對兩個數據使用相同索引 。

在線例子:https://3v4l.org/kdPDI

$arr = array(
    array(
     'c_code' => '200001', 
     'itemname' => '303 10CAP', 
     'c_pack_code' => 'PK0075', 
     'c_web_img_link' => '' 
    ), 
    array(
     'c_code' => '200005', 
     'itemname' => '3P 4TAB', 
     'c_pack_code' => '', 
     'c_web_img_link' => '' 
    ) 
); 

$res1 = array(); 
$res2 = array(); 
foreach($arr as $val){ 
    $res1['c_code'][] = $val['c_code']; 
    $res1['itemname'][] = $val['itemname']; 

    $res2['c_pack_code'][] = $val['c_pack_code']; 
    $res2['c_web_img_link'][] = $val['c_web_img_link']; 
} 

$out = array(array_merge($res1, $res2)); 

echo json_encode($out);