2016-05-30 2 views
-2

Помогите мне преобразовать следующий массив в json. Я попытался преобразовать массив.Php array и 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 из массива. Соберите данные в двух разных массивах и после цикла marge их и сохраните результат в другом массиве, после этого закодируйте их.

Примечание: Ваш желаемый 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);