拒绝数组中的某些索引参数

时间:2019-07-02 00:41:48

标签: php arrays laravel eloquent

给出一个数组,其中每个索引中都有某些键值对,如何选择某些键值对而拒绝其他键值。

$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 :(得分:0)

你可以试试吗

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

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

它将仅通过$viewFileds

中启用的字段来返回新的收藏集

希望有帮助