Отклонение определенных параметров индекса в массиве - PullRequest
0 голосов
/ 02 июля 2019

Учитывая массив, в котором в каждом индексе есть определенные пары ключ-значение, как мне выбрать определенные пары ключ-значение и отклонить другие.

$channels = Channel::get()->toArray();

Это даст следующий массив:

"channels": [
    {
        "id": 1,
        "name": "Info Release",
        "slug": "info-release",
        "desc": "Contains blah blah.",
        "access_level": "0",
        "created_at": "2018-12-02 01:23:50",
        "updated_at": "2018-12-05 07:54:41"
    },
    {
        "id": 11,
        "name": "Casual News",
        "slug": "casual-news",
        "desc": "Contains blah blah.",
        "access_level": "0",
        "created_at": "2018-12-05 05:34:50",
        "updated_at": "2018-12-05 07:54:32"
    },
    {
        "id": 12,
        "name": "haha",
        "slug": "haha",
        "desc": "Contains blah blah.",
        "access_level": "0",
        "created_at": "2018-12-29 23:27:16",
        "updated_at": "2018-12-29 23:27:16"
    }
],

Как лучше всего превратить этот массив в такой:

"channels": [
    {
        "id": 1,
        "name": "Information Release",
        "slug": "information-release",
    },
    {
        "id": 11,
        "name": "Casual News",
        "slug": "casual-news",
    },
    {
        "id": 12,
        "name": "haha",
        "slug": "haha",
    }
],

Так что если я напишу

$channels[0]->id

выплюнет 1

1 Ответ

0 голосов
/ 02 июля 2019

Можете ли вы попробовать это

$viewFileds = ['id', 'name', 'slug'];

$channels = Channel::get()
                    ->map(function ($each) use ($viewFileds) {
                        return Arr::only($each, $viewFileds);
                    }); 

Он вернет новую коллекцию только по полю, включенному в $viewFileds

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...