I have made a small application using jQuery\'s datepicker
. I am setting unavailable dates to it from a JSON file which looks like this:
{ \"dat
Use array_values() for your issue:
$arr['dates'] = array_values($arr['dates']);
//..
$arr = json_encode($arr);
Why? Because you're unsetting array's key without re-ordering it. So after this the only way to keep that in JSON will be encode keys too. After applying array_values()
, however, you'll get ordered keys (starting from 0
) which can be encoded properly without including keys.
In Laravel collections(just in case) you can do
$newArray = $collection->values()->toArray();
or
$jsonEncoded = $collection->values()->toJson();
You are ignoring the return value of array_values
in your existing attempt to reindex the array. Correct is
$arr['dates'] = array_values($arr['dates']);
The reindexing should also be moved outside the foreach
loop, there is no point in reindexing multiple times.