How to convert array to a json object?

Demon37

I am trying to push values in an array and it comes like

[{"Monday":"11:30"},{"Monday":"12:00"},{"Monday":"23:00"},{"Tuesday":"11:30"},{"Tuesday":"12:00"},{"Tuesday":"23:00"}]

But I want it to be an object like


{

"Monday" : [ "11:30", "12:00", "23:00"]

"Tuesday" : ["11:30","12:00","23:00"]

}

Here is my code snippet

$timings = DoctorTimings::where('doctor_id', '=', $input['doctor_id'])->get();
$doctor_timings = [];

foreach($timings as $timing) {
    $day_id = $timing->day_id;
    $time_slot_id = $timing->time_slot_id;
    $day_id =  Days::where('id', '=', $day_id)->first()->day;
    $time_id = DB::table('time_slot')->where('id', '=', $time_slot_id)->select('time')->first()->time;  
    array_push($doctor_timings, array($day_id => $time_id));
}

$doctorTimings = json_encode($doctor_timings);

echo $doctorTimings;
Ersoy

You may use mapToGroups to get in the requested format. But i don't know your table structure so i got these;

[{"Monday":"11:30"},{"Monday":"12:00"},{"Monday":"23:00"},{"Tuesday":"11:30"},{"Tuesday":"12:00"},{"Tuesday":"23:00"}]

put into the collection (assuming your eloquent collection returns like that)

$timings = collect([
        ["Monday" => "11:30"],
        ["Monday" => "12:00"],
        ["Monday" => "23:00"],
        ["Tuesday" => "11:30"],
        ["Tuesday" => "12:00"],
        ["Tuesday" => "23:00"]
    ]);

    return $timings->mapToGroups(function ($item) {
        $day = array_key_first($item);

        return [$day => $item[$day]];
    });

which prints these;

{
  "Monday": [
    "11:30",
    "12:00",
    "23:00"
  ],
  "Tuesday": [
    "11:30",
    "12:00",
    "23:00"
  ]
}

Edit: (the same array you posted in online used here + same function i used for solution)

$days = ["Monday", "Monday"];
$time = ["11:30", "12:30"];
$doctor_timings = [];
for ($i = 0; $i < sizeof($days); $i++) {
    $day_id = $days[$i];
    $time_id = $time[$i];
    array_push($doctor_timings, [$day_id => $time_id]);
}

return collect($doctor_timings)->mapToGroups(function ($item) {
    $day = array_key_first($item);

    return [$day => $item[$day]];
});

which prints

{"Monday":["11:30","12:30"]}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How to convert JSON object to JavaScript array?

GSON. How to convert json object to json array?

How to convert a JSON object stream into an array with jq

Convert object to JSON Array?

How to Convert Json Object to Array in C#

How to convert Array into json object?

How to convert JSON object to an Typescript array?

How convert JSON array or JSON object to list of object?

How to convert json to array object in javascript?

How to convert the given dictionary into a JSON Object containing a JSON Array In Swift?

How to convert JSON object into an array in React Native

How to Convert nested json to array of object in Javascript?

How can I convert to Json Object to Json Array in Karate?

How to convert array of strings into JSON object?

How to Convert String Array JSON in a Java Object

How to convert JSON Object into Javascript array

How do I convert an Array with a JSON string into a JSON object (ruby)

How to convert json object to string array

How to convert json Object to json Array?

how to convert this JavaScript object that contains an array to JSON?

Convert Json object to an array

How to convert an array of JSON into an array of javascript object?

How to convert json array to json object in lambda python function

React: How to convert JSON Object to Array and render it?

How to convert JSON object to an Typescript array in an api

how to Convert JavaScript array (without object name) into json (with object name)?

How to convert a Json object with multiple objects in it (legacy) to a Json array

How to convert JSON object rows into JSON array in MySQL?

How to convert JSON array to OBJECT array javascript?