2016-06-15 2 views
0

У меня есть результирующий набор, который выглядит примерно так:PHP- Преобразование более одной строки Json в один массив

enter image description here

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

Это код, который я попробовал:

//$resultset contains the entire resultset 
$resultset_JSON='[["first","second","third","fourth"],["fifth","sixth","seventh","eight","ninth"]‌​,["life","death","business" ,"editing","light"]]'; 

$data= array(); 
while($row=mysqli_fetch_array($resultset)) 
{ 
    $data  = json_decode($row['category']); 
    //$data[] = json_decode($row['category']);      
} 
print_r($data); 

Но я не получаю желаемого результата. Я могу получить только последнюю строку.

Может ли кто-нибудь помочь мне понять это?

Это выход я пытаюсь получить:

Array 
( 
    [0] => first 
    [1] => second 
    [2] => third 
    [3] => fourth 
    [4] => fifth 
    [5] => sixth 
    [6] => seventh 
    [7] => eighth 
    [8] => ninth 
    [9] => life 
    [10] => death 
    [11] => business 
    [12] => editing 
    [13] => light 
) 
+0

Добавить '[]' at '$ data [] = json_decode ($ row ['category']); ' – Saty

+0

Пробовал это. JSON-кодированный вывод массива, если я делаю это [[«первый», «второй», «третий», «четвертый»], [«пятый», «шестой», «седьмой», «восьмерка», «девятый», ], ["life", "death", "business" , "edit", "light"]] @Saty – Annabelle

+0

Okk использует его как '$ data [] = $ row ['category'];' и вне while loop 'json_decode ($ data)' – Saty

ответ

1

попробовать этот

$final_array = array(); 

while($row=mysqli_fetch_array($resultset)) 
{ 

    $temp_data  = json_decode($row['category'],true); 
    $final_array  = array_merge($final_array ,$temp_data); 

} 

print_r($final_array); 
0
$resultset_JSON='[["first","second","third","fourth"],["fifth","sixth","seventh","eight","ninth"]‌​,["life","death","business" ,"editing","light"]]'; 

    $all_data = array(); 
    while($row=mysqli_fetch_array($resultset)){ 
     //Fetch array 
     $data  = json_decode($row['category']); 
     $all_data = array_merge($all_data,$data);      
    } 
    var_dump($all_data); 
1
Please try this code: 

$data= array(); 
$ds= array(); 
$f =''; 
while($row=mysqli_fetch_array($resultset)){ 
{ 
    $data  = json_decode($row['category']); 
    $f .= implode(',',$data);      
} 
if(!empty($f)) { 
    $ds = explode(',',$f); 
} 
print_r($ds); 
Смежные вопросы