Использование метода срыва Ларавела без ассоциативного массива

Допустим, у меня есть ArticleСборник, и я хочу получить популярные статьи.

Итак, во-первых, я делаю scopePopular() метод в Article метод. Очень просто.

Теперь я хочу получить их ids, так что я сделаю это:

Article::popular->pluck('id');

Результатом будет ассоциативный массив:

[
0 => 1,
1 => 34,
2 => 17
...
];

Я хочу получить нормальный массив, без ключей, как:

[1, 34, 17]

Я знаю, что могу сделать что-то вроде этого:

array_values(Article::popular->pluck('id'));

Но я верю, что у Laravel есть гораздо более чистый способ сделать это. Есть идеи?

0

Решение

Все массивы имеют индексы.

[
0 => 1,
1 => 34,
2 => 17
];

равно

[1, 34, 17]

Другими словами:

$a1 = [0 => 1, 1 => 34, 2 => 17];
$a2 = [1, 34, 17];
$a1 === $a2;
// returns True
4

Другие решения

Ты можешь использовать values() метод, который является оберткой для array_values():

Article::popular->pluck('id')->values();
0

Это именно то, что вам нужно и что вы получаете, по умолчанию php имеет инкрементный ключ от 0.

Вы хотите увидеть что-то вроде массива JSON, который я предполагаю.
Просто сделайте возврат массива, и вы увидите массив JSOn в браузере, но внутренне это только так.

Пожалуйста, подтвердите и дайте мне знать. Спасибо

0
По вопросам рекламы [email protected]