2017-02-07 2 views
1

Я пытаюсь сопоставить результат mysql с json-кодом, но результат не такой, какой я хочу.Mapping Mysql Результат для пользовательского формата Json

Результаты Из Mysql Query

Mysql Result

print_r($data)

Array 
(
    [0] => Array 
     (
      [Bulan] => Januari 
      [Total] => 1 
      [Langsung] => 0 
      [Delivery] => 1 
      [Dropship] => 0 
     ) 

    [1] => Array 
     (
      [Bulan] => Februari 
      [Total] => 24 
      [Langsung] => 19 
      [Delivery] => 4 
      [Dropship] => 1 
     ) 

    [2] => Array 
     (
      [Bulan] => Maret 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [3] => Array 
     (
      [Bulan] => April 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [4] => Array 
     (
      [Bulan] => Mei 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [5] => Array 
     (
      [Bulan] => Juni 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [6] => Array 
     (
      [Bulan] => Juli 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [7] => Array 
     (
      [Bulan] => Agustus 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [8] => Array 
     (
      [Bulan] => September 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [9] => Array 
     (
      [Bulan] => Oktober 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [10] => Array 
     (
      [Bulan] => November 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

    [11] => Array 
     (
      [Bulan] => Desember 
      [Total] => 0 
      [Langsung] => 0 
      [Delivery] => 0 
      [Dropship] => 0 
     ) 

) 

Если я использую echo json_encode($data); Результат, как этот:

[ 
    { 
    "Bulan": "Januari", 
    "Total": "1", 
    "Langsung": "0", 
    "Delivery": "1", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Februari", 
    "Total": "24", 
    "Langsung": "19", 
    "Delivery": "4", 
    "Dropship": "1" 
    }, 
    { 
    "Bulan": "Maret", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "April", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Mei", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Juni", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Juli", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Agustus", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "September", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Oktober", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "November", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Desember", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    } 
] 

Мои Ожидаемые Как это:

{ 
     "Bulan"  : ["Januari", "Februari", "Maret", "April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"], 
     "Total"  : [1,24,0,0,0,0,0,0,0,0,0,0,0], 
     "Langsung" : [0,19,0,0,0,0,0,0,0,0,0,0,0], 
     "Delivery" : [1,4,0,0,0,0,0,0,0,0,0,0,0], 
     "Dropship" : [0,1,0,0,0,0,0,0,0,0,0,0,0] 
     } 

можно сделать?

Заранее спасибо

+0

Можете ли вы объяснить мне, как это сделать? –

+1

Сделайте свое 'while' и добавьте значения в массив. –

ответ

1

Есть много способов .. без тестирования ничего я думаю, что это должно выглядеть как этот

$output=array(); 
foreach($data as $entry) 
foreach($entry as $k=>$v) 
{ 
if(!is_array($output[$k])) 
$output[$k]=array(); 
$output[$k][]=$v; 
} 

print_r($output); 
echo json_encode($output); 

вывод, который я получаю следующее

{"Bulan":["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"], 
"Total":["1","24","0","0","0","0","0","0","0","0","0","0"], 
"Langsung":["0","19","0","0","0","0","0","0","0","0","0","0"], 
"Delivery":["1","4","0","0","0","0","0","0","0","0","0","0"], 
"Dropship":["0","1","0","0","0","0","0","0","0","0","0","0"]}. 

полный код:

<?php 

$data=json_decode('[ 
    { 
    "Bulan": "Januari", 
    "Total": "1", 
    "Langsung": "0", 
    "Delivery": "1", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Februari", 
    "Total": "24", 
    "Langsung": "19", 
    "Delivery": "4", 
    "Dropship": "1" 
    }, 
    { 
    "Bulan": "Maret", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "April", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Mei", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Juni", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Juli", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Agustus", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "September", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Oktober", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "November", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    }, 
    { 
    "Bulan": "Desember", 
    "Total": "0", 
    "Langsung": "0", 
    "Delivery": "0", 
    "Dropship": "0" 
    } 
]',true); 

$output=array(); 
foreach($data as $entry) 
foreach($entry as $k=>$v) 
{ 
if(!is_array($output[$k])) 
$output[$k]=array(); 
$output[$k][]=$v; 
} 

print_r($output); 
echo str_replace('],',"],\n",json_encode($output)); 
+0

Результат {"": ["Januari", "1", "0", "1", "0", "Februari", "24", "19", "4", "1" «0», «0», «0», «0», «0», «0» , «0», «Mei», «0», «0», «0», «0», «0», «0», "0", "0", "0", "июнь", "0", "0", "0", "0", "Juli", "0", "0", "0", "0 «0», «0», «0», «0», «сентябрь» , «0», «0», «0», «0», «октябрь», «0», «0», «0», «0», «0», , "0", "0", "0", "ноябрь", "0", "0", "0", "0", "Desember", "0", "0", "0",» 0 "]} –

+1

добавлен полный код. – Dimi

+0

wow, work line charm .... спасибо заранее –

Смежные вопросы