2016-04-07 10 views
0

Я пытаюсь преобразовать массив в этот формат JSON!конвертировать JSON в квадратную скобку (структура JSON)

[ 
    [ 
     ["SNO",1], 
     ["chartType","pie"], 
     ["outputValues","rural_total_m,urban_total_m"], 
     ["attributeId",10025], 
     ["level","india"] 
    ], 
    [ 
     ["SNO",2], 
     ["chartType","column"], 
     ["outputValues","total_m"], 
     ["attributeId",10025], 
     ["level","state"] 
    ] 
] 

У меня есть массив в качестве результата от SQL запроса и print_r() функция PHP печатает его

ас-
Array 
(
    [0] => Array 
     (
      [SNO] => 1 
      [chartType] => pie 
      [outputValues] => rural_total_m,urban_total_m 
      [attributeId] => 10025 
      [level] => india 
     ) 
    [1] => Array 
     (
      [SNO] => 2 
      [chartType] => column 
      [outputValues] => total_m 
      [attributeId] => 10025 
      [level] => state 
     ) 
) 

Как я могу получить выше формат? Спасибо!

+2

Желаемый формат не соответствует данным образца, поэтому немного неясно, чего вы хотите. Как [1 => 7,4,2,8,4,1,9,3,2,16,7,12] быть преобразовано в [["a", 12], ["b", 5], [ "с", 18], [ "д", 13], [ "е", 7], [ "F", 4], [ "г", 9]]? Если вы предоставите желаемый результат для рассматриваемого массива, вы, вероятно, получите лучший ответ. –

+1

Почему 12 таких же, как 'a'? Почему 'b' 5? Где еще 5? – h2ooooooo

+0

Простите, возьмите a, b, c, d, e, f, g как 1,2,3,4,5,6,7,8. –

ответ

1

обновленный

если вы хотите что-то вроде этого

[ 
    [ 
     ["SNO",1], 
     ["chartType","pie"], 
     ["outputValues","rural_total_m,urban_total_m"], 
     ["attributeId",10025], 
     ["level","india"] 
    ],[ 
     ["SNO",2], 
     ["chartType","column"], 
     ["outputValues","total_m"], 
     ["attributeId",10025], 
     ["level","state"] 
    ] 
] 

затем использовать этот код

пусть фиктивный массив $ результат

$result = array(
       array(
        "SNO" => 1, 
        "chartType" => "pie", 
        "outputValues" => "rural_total_m,urban_total_m", 
        "attributeId" => 10025, 
        "level" => "india" 
       ), 
       array(
        "SNO" => 2, 
        "chartType" => "column", 
        "outputValues" => "total_m", 
        "attributeId" => 10025, 
        "level" => "state" 
       ) 
     ); 

$return_array = array(); 


foreach ($result as $value) { 
    $temp_array = array(); 

    foreach ($value as $key => $value) { 
     $temp_array[] = array($key,$value); 
    } 
    $return_array[] = $temp_array; 


} 

echo json_encode($return_array); 

иначе, если желаемый результат, как это один

[ 

    ["SNO",1], 
    ["chartType","pie"], 
    ["outputValues","rural_total_m,urban_total_m"], 
    ["attributeId",10025], 
    ["level","india"] 
    ["SNO",2], 
    ["chartType","column"], 
    ["outputValues","total_m"], 
    ["attributeId",10025], 
    ["level","state"] 

] 

затем использовать этот один

$ return_array = массив();

foreach ($result as $value) { 

    foreach ($value as $key => $value) { 
     $return_array[] = array($key,$value); 
    } 

} 

--------------------------------- До обновления ------- ---------------------------------------------

не самое эффективное решение, но сделает трюк!

$array = array(7,4,2,8,4,1,9,3,2,16,7,12); 

$alpha = 'a'; 
$retur_array = array(); 
foreach ($array as $value) { 
    $retur_array[] = array($alpha++ , $value); 
} 
json_encode($retur_array); 

выход

[ 
["a",7], 
["b",4], 
["c",2], 
["d",8], 
["e",4], 
["f",1], 
["g",9], 
["h",3], 
["i",2], 
["j",16], 
["k",7], 
["l",12] 
] 
+0

Это именно то, что я хотел! Но что, если у меня есть альфа, уже определенная для каждого значения? –

+0

hmm, так что если альфа уже определена, thay должен быть в массиве или что-то в этом роде, поэтому вы можете искать их по индексу, просто измените значение $ alpha = 0 ;, , если нет, то можете ли вы немного более четко указать, где и где как хранятся альфа! –

+0

Массив, определяемый выбором запроса из таблицы sql! Если я применяю вышеуказанный код к этому массиву, он производит вывод как [ [{"key": "value"}], [{"key": "value"}], ...... ... ] –

1

Yuor входной массив имеет номера в качестве ключей. Вам нужно зациклиться на этом и изменить ключи на значения в подматрице.

$new_array = array(); 
foreach ($array as $key => $val) { 
    $new_array[] = array("$key", $val); 
} 
echo json_encode($new_array); 
Смежные вопросы