Моя проблема в моем json. Я ожидаю массив, но получаю объект.
Подробности:
У меня есть массив чисел:
$numbers = [1];
Я выбираю из отношений "нарисованные числа":
$drawnNumbers = Ball::whereIn('number', $numbers)->where('game_id', $card->game->id)->get()->map(function($ball) {
return $ball->number;
})->toArray();
Я делаю ->toArray()
здесь.Я хочу найти числа в $numbers
, которых нет в $drawnNumbers
.Я делаю так:
$numbersNotYetDrawn = array_diff($numbers, $drawnNumbers);
Мой метод тогда return $numbersNotYetDrawn
(мои заголовки принимают application / json).
Так что теперь проблема.Когда $drawnNumbers
является пустым массивом, то напечатанный json является обычным массивом, подобным этому:
[
1
]
Однако, если отношение возвращает $drawnNumbers
, чтобы быть массивом с числами, тогда json печатается какобъект:
{
"0" => 1
}
Кто-нибудь знает, почему это так?В любом случае, чтобы убедиться, что json является массивом?
Редактировать:
Вот мои фактические данные:
$drawnNumbers = Ball::whereIn('number', $numbers)->where('game_id', $card->game->id)->get()->map(function($ball) {
return $ball->number;
})->toArray();
$undrawnNumbers = array_diff($numbers, $drawnNumbers);
// $undrawnNumbers = array_values(array_diff($numbers, $drawnNumbers)); // temp fix