Laravel集合如何从所有项目中删除特定键?

问题描述 投票:0回答:3

起初听起来很疯狂,但我找不到解决方案!

这里是我的收藏:

Collection {#433
  #items: array:432 [
    0 => array:5 [
      "word_id" => 12218
      "name" => "ordered"
      "rank" => 12217
      "is_real" => 1
      "id" => 1
    ]
    1 => array:5 [
      "word_id" => 12097
      "name" => "one-dimensional"
      "rank" => 12096
      "is_real" => 1
      "id" => 2
    ]
    2 => array:5 [
      "word_id" => 19679
      "name" => "watery"
      "rank" => 19678
      "is_real" => 1
      "id" => 3
    ]
    .
    .
    .

但是我希望它是这样的:

Collection {#433 
  #items: array:432 [
    0 => array:5 [
      "name" => "ordered"
      "id" => 1
    ]
    1 => array:5 [
      "name" => "one-dimensional"
      "id" => 2
    ]
    2 => array:5 [
      "name" => "watery"
      "id" => 3
    ]
    .
    .
    .

如何使用laravel收集?我是否必须将集合更改为数组并自己进行操作?怎么样?

php arrays laravel
3个回答
3
投票
$collection = $collection->map(function ($item) {
    return array_only($item, ['id', 'name']);
});

1
投票

或者您也可以使用

$collection = $collection->map(function ($item) {
    return $item->only(['id', 'name'])
});

这样,您的收藏集仍将保留为收藏集


0
投票
$collection = $collection ->map(function ($item) {
        return collect($item)->forget(['work_id','rank','is_real']);
    });
© www.soinside.com 2019 - 2024. All rights reserved.