2016-06-09 3 views
0

У меня есть этот тип массиваКак преобразовать массив в JSON

Array 
(
    [0] => Samy Jeremiah,55 
    [1] => Nelson Owen,93 
    [2] => McMaster Ashlie,88 
    [3] => Marsh Harlow,97 
    [4] => Macfarquhar Aiden,95 
    [5] => Lowe Sophie,91 
); 

Мне нужно преобразовать этот массив в следующий тип JSON

data: [  
     ['Samy Jeremiah',55 ],  
     ['Nelson Owen',93 ],  
     ['McMaster Ashlie',88 ] , 
     ['Marsh Harlow',97 ] , 
     ['Macfarquhar Aiden',95 ], 
     ['Lowe Sophie',91 ] 
    ] 
+2

Использование 'json_encode'. –

+1

Возможный дубликат [Преобразовать массив результатов php в json] (http://stackoverflow.com/questions/2122233/convert-php-result-array-to-json) – aldrin27

+1

Я использовал json_encode ($ array); –

ответ

0

Используя json_encode вы можете добиться того, что вы хотите.

Предположим, что ваше имя массива $arr, поэтому примените json_encode.

echo json_encode(array('data'=>$arr)); //your json will be print here 

реального времени Пример:

$arr = array('Samy Jeremiah,55', 'Nelson Owen,93', 'McMaster Ashlie,88', 'Marsh Harlow,97', 'Macfarquhar Aiden,95', 'Lowe Sophie,91'); 
$new_arr = array(); 
foreach($arr as $k => $val){ 
    $na = explode(",", $val); 
    $na[0] = "'".$na[0]."'"; 
    $value = implode(",", $na); 
    $new_arr[$k] = $value; 
} 

echo json_encode(array("data" => $new_arr)); 
+0

Я использовал json_encode ($ array); Он показывает неправильный формат [«Samy Jeremiah, 55», «Nelson Owen, 93», «McMaster Ashlie, 88», «Marsh Harlow, 97», «Macfarquhar Aiden, 95», «Lowe Sophie, 91» –

+0

Я могу получить это много, но это не мои потребности («данные»: [«Сами Иеремия, 55», «Нельсон Оуэн, 93», «Макмастер Эшли, 88», «Марш Харлоу, 97», «Макфаркхар Эйден, 95», Lowe Sophie, 91 "]} –

+0

Какое ваше требование не является действительным json-формате. –

0

Попробуйте

<?php 
    $yourArray = array(
     '0' => 'Samy Jeremiah,55', 
     '1' => 'Nelson Owen,93', 
     '2' => 'McMaster Ashlie,88', 
     '3' => 'Marsh Harlow,97', 
     '4' => 'Macfarquhar Aiden,95', 
     '5' => 'Lowe Sophie,91', 
    ); 

    #Check output 01 
    //print_r($yourArray); 

    foreach ($yourArray as $value) {     
     $explodeValue = explode(',', $value);  
     $newName []= array($explodeValue[0] => $explodeValue[1]); 
    } 
    #Check output 02 
    //print_r($newName); 

    #Check output 03 
    echo(json_encode($newName)); 
?> 

PHPFiddle Preview


выход 01

Array ( 
    [0] => Samy Jeremiah,55 
    [1] => Nelson Owen,93 
    [2] => McMaster Ashlie,88 
    [3] => Marsh Harlow,97 
    [4] => Macfarquhar Aiden,95 
    [5] => Lowe Sophie,91 
) 

Выход 02

Array ( 
    [0] => Array ([Samy Jeremiah] => 55) 
    [1] => Array ([Nelson Owen] => 93) 
    [2] => Array ([McMaster Ashlie] => 88) 
    [3] => Array ([Marsh Harlow] => 97) 
    [4] => Array ([Macfarquhar Aiden] => 95) 
    [5] => Array ([Lowe Sophie] => 91) 
) 

Выход 03

[ 
    {"Samy Jeremiah":"55"}, 
    {"Nelson Owen":"93"}, 
    {"McMaster Ashlie":"88"}, 
    {"Marsh Harlow":"97"}, 
    {"Macfarquhar Aiden":"95"}, 
    {"Lowe Sophie":"91"} 
] 
+0

@Boominathan проверить это –

0

Ваш желаемый результат представляет собой массив массивов. Вы должны разбить каждую запись вашего массива на 2 сущности и направить их как массив в новый массив, а затем json_encode() новый массив.

Это PHP-сниппет работает только, если ваш вход последова- массив строк, каждая из которых включала одну запятую в качестве разделителя между именем и INT-значение:

$arr2 = array(); 
foreach($arr1 as $e) { 
    list($name, $val) = explode(',', $e); 
    $arr2[] = array($name, (int)$val); 
} 
echo json_encode($arr2); 
0

Использование ниже кода

$data = array('Samy Jeremiah,55', 'Nelson Owen,93', 'McMaster Ashlie,88', 'Marsh Harlow,97', 'Macfarquhar Aiden,95', 'Lowe Sophie,91'); 
    $res = array(); 
    foreach($data as $e) { 
     $list = explode(',', $e); 
     $res[] = array($list[0], $list[1]); 
    } 
    echo json_encode(['data'=>$arr2]); 

Выход

{"data":[ 
     ["Samy Jeremiah",55], 
     ["Nelson Owen",93], 
     ["McMaster Ashlie",88], 
     ["Marsh Harlow",97], 
     ["Macfarquhar Aiden",95], 
     ["Lowe Sophie",91] 
     ] 
} 
Смежные вопросы