【问题标题】:Rejecting certain index parameters in an array拒绝数组中的某些索引参数
【发布时间】:2019-11-12 14:25:42
【问题描述】:

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

$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

【问题讨论】:

标签: php arrays laravel eloquent


【解决方案1】:

你可以试试这个

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

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

它将仅通过$viewFileds 中启用的字段返回新的集合

希望对你有帮助

【讨论】:

  • 这太棒了!谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 2019-01-26
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
相关资源
最近更新 更多