2016-02-08 6 views
-1

У меня есть формат json и вы хотите преобразовать его в свой индивидуальный формат. Пожалуйста, помогите мне в этом преобразовании с помощью PHP. Пожалуйста, помогите мне, как я могу построить вышеупомянутый формат массива JSON. Вот мой формат:Как преобразовать строку json в массив в php?

[{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}] 

И хочу привести в следующем формате:

[["Food & Drinks", 2],["Lifestyle", 1]] 
+1

'json_decode ($ JSON, правда)' –

+0

@SearchAndResQ опечатка .. :) –

+1

Я знаю, что json расшифровывается. Я хочу настроить этот формат в другом формате. –

ответ

1

попытка ниже решения:

$json = '[{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}]'; 

$json_array = json_decode($json, true); 

$new_array = array(); 

foreach($json_array as $arr){ 
    $new_array[] = array_values($arr); 
} 

print_r($new_array); 

echo json_encode($new_array); 

Выход:

Array 
(
    [0] => Array 
     (
      [0] => Food & Drinks 
      [1] => 2 
     ) 

    [1] => Array 
     (
      [0] => Lifestyle 
      [1] => 1 
     ) 

) 
[["Food & Drinks","2"],["Lifestyle","1"]] 

более подробно то советую на PHP: json_decode

0
$array = json_decode($json, true); 
$result = array(); 
for($i=0; $i<sizeof($array); $i++){ 
    $result[] = array_values($array[$i]); 
} 

$ результат будет ваш ожидаемый результат

1

раствора составляет:

  • Первое использование json_decode() функции для декодирования JSON строку
  • Затем используйте array_map() функцию, чтобы применить функцию обратного вызова (array_values()) каждому элементу данного массива

Так что ваш код должен быть таким:

// suppose $json is your json string 
$arr = json_decode($json, true); 
$newArr = array_map('array_values', $arr); 

// display $newArr array 
var_dump($newArr); 

Здесь $newArr Ваш желаемый массив.

0

версия, которая отбрасывает значение 'данные' в целое

$json = '[{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}]'; 

$output = json_encode(array_map(function($v) { 
    $v['data'] = (int) $v['data']; 
    return array_values($v); 
}, json_decode($json, true))); 

// ["Food & Drinks",2],["Lifestyle",1]] 
echo $output; 

Если INT не требуется

$output = json_encode(array_map('array_values', json_decode($json, true))); 
Смежные вопросы