0

I have this type of Array

   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
);

I need to convert this array into following type of json

data: [     
        ['Samy Jeremiah',55 ],      
        ['Nelson Owen',93 ],    
        ['McMaster Ashlie',88 ] , 
        ['Marsh Harlow',97 ] ,  
        ['Macfarquhar Aiden',95 ],  
        ['Lowe Sophie',91 ]   
     ]
Dharman
  • 30,962
  • 25
  • 85
  • 135

4 Answers4

0

Try this

<?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


Output 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 
)

Output 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 ) 
)

Output 03

[
    {"Samy Jeremiah":"55"},
    {"Nelson Owen":"93"},
    {"McMaster Ashlie":"88"},
    {"Marsh Harlow":"97"},
    {"Macfarquhar Aiden":"95"},
    {"Lowe Sophie":"91"}
]
Abdulla Nilam
  • 36,589
  • 17
  • 64
  • 85
0

Your desired result is an array of arrays. You have to split each entry of your array into 2 entities and push them as an array into a new array, then json_encode() the new array.

This php-snippet only works, if your input is consistantly an array of strings, containing each one comma as separator between name and int-value:

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

Use below code

$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]);

Output

{"data":[
         ["Samy Jeremiah",55],
         ["Nelson Owen",93],
         ["McMaster Ashlie",88],
         ["Marsh Harlow",97],
         ["Macfarquhar Aiden",95],
         ["Lowe Sophie",91]
        ]
}
Vinie
  • 2,983
  • 1
  • 18
  • 29
-1

Using the json_encode you can achieve what you want.

Suppose your array name is $arr, so now apply the json_encode.

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

Real time Example:

$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));
  • I used json_encode($array); Its showing wrong format ["Samy Jeremiah,55","Nelson Owen,93","McMaster Ashlie,88","Marsh Harlow,97","Macfarquhar Aiden,95","Lowe Sophie,91" – Boomi nathan Jun 09 '16 at 09:41
  • I can get this much but this is not my need {"data":["Samy Jeremiah,55","Nelson Owen,93","McMaster Ashlie,88","Marsh Harlow,97","Macfarquhar Aiden,95","Lowe Sophie,91"]} – Boomi nathan Jun 09 '16 at 09:44
  • I need to put this json in jqchart they mentioned this type of json format thats why i asked to convert in this format example jqchart code is this $('#columchart').jqChart({ title: { }, animation: { duration: 1 }, shadows: { enabled: true }, series: [ { type: 'column', title: 'Term 1', fillStyle:'#3980b5', data: [ ['Samy Jeremiah',55 ] , ['Nelson Owen',93 ] , ['McMaster Ashlie',88 ] , ['Marsh Harlow',97 ] , ['Macfarquhar Aiden',95 ] , ['Lowe Sophie',91 ] ] }, – Boomi nathan Jun 09 '16 at 09:47