I have an array where i fetch from php with variable $allresults
:
Array
(
[1] => Array
(
[0] => 16/03/2018
[1] => Friday
[2] => 21.00
[3] => Friendly Match
[4] => Italy vs France
[5] => Truesports HD
)
[2] => Array
(
[0] => 17/03/2018
[1] => Saturday
[2] => 15.30
[3] => Friendly Match
[4] => Italy vs Pakistan
[5] => Truesports HD
)
[3] => Array
(
[0] => 17/03/2018
[1] => Saturday
[2] => 19.00
[3] => Friendly Match
[4] => Spain vs USA
[5] => Truesports
)
)
I have to convert it into json for other production use, so i use json_encode()
with this code below
echo json_encode($allresults, JSON_PRETTY_PRINT);
and the result become
[
"16\/03\/2018",
"Friday",
"21.00",
"Friendly Match",
"Italy vs France",
"Truesports HD"
],
[
"17\/03\/2018",
"Saturday",
"15.30",
"Friendly Match",
"Italy vs Pakistan",
"Truesports HD"
],
[
"17\/03\/2018",
"Saturday",
"19.00",
"Friendly Match",
"Spain vs USA",
"Truesports"
]
My point is how can i change this into something like this in my json.
[
"date":"17\/03\/2018",
"day":"Saturday",
"time":"19.00",
"type":"Friendly Match",
"value":"Spain vs USA",
"tv":"Truesports"
]
Should i change this from php array or i could change this from json file directly?
You have to update your array with key. Or second option is you can create new array with your expected output key:
$array = Array
(
"1" => Array
(
"0" => "16/03/2018",
"1" => "Friday",
"2" => "21.00",
"3" => "Friendly Match",
"4" => "Italy vs France",
"5" => "Truesports HD",
),
"2" => Array
(
"0" => "17/03/2018",
"1" => "Saturday",
"2" => "15.30",
"3" => "Friendly Match",
"4" => "Italy vs Pakistan",
"5" => "Truesports HD",
),
"3" => Array
(
"0" => "17/03/2018",
"1" => "Saturday",
"2" => "19.00",
"3" => "Friendly Match",
"4" => "Spain vs USA",
"5" => "Truesports"
)
);
$array_keys= array("date","day","time","type","value","tv");
$new_array = array();
foreach ($array as $key => $value) {
$tmp_array = array();
foreach ($value as $key1 => $value1) {
if(isset($array_keys[$key1]))
$tmp_array[$array_keys[$key1]] = $value1;
}
$new_array[] =$tmp_array;
}
echo json_encode($new_array, JSON_PRETTY_PRINT);
Use This
$field = array("date","day","time","type","value","tv");
echo "<pre>";
foreach($yourArr as $value){
$j = 0;
foreach($value as $arrVal){
//Get Field Name
$fieldKey = $field[$j];
$newArr[$fieldKey] = $arrVal;
$j++;
}
$finalArr[] = $newArr;
}
print_r($finalArr);
I used array_combine()
function - Creates an array by using one array for keys and another for its values
$array = array
(
"1" => array
(
"0" => "16/03/2018",
"1" => "Friday",
"2" => "21.00",
"3" => "Friendly Match",
"4" => "Italy vs France",
"5" => "Truesports HD",
),
"2" => array
(
"0" => "17/03/2018",
"1" => "Saturday",
"2" => "15.30",
"3" => "Friendly Match",
"4" => "Italy vs Pakistan",
"5" => "Truesports HD",
),
"3" => array
(
"0" => "17/03/2018",
"1" => "Saturday",
"2" => "19.00",
"3" => "Friendly Match",
"4" => "Spain vs USA",
"5" => "Truesports"
)
);
$array_keys= array("date","day","time","type","value","tv");
$newArray=array();
foreach($array as $subArr){
$newArray[] = array_combine($array_keys,$subArr);
}
echo json_encode($newArray, JSON_PRETTY_PRINT);