【问题标题】:Laravel collection increment values and keysLaravel 集合增量值和键
【发布时间】:2017-09-27 17:31:50
【问题描述】:

你好,

我如何decrement集合中的所有键并将其转换为数组?

假设我有一个如下所示的集合:

Collection {#410 ▼
  #items: array:1 [▼
    1  => 1,
    2 => 6  
  ]
}

我需要这样转换:

array:1 [▼
  0 => 1,
  1 => 6
]

我知道我能做到:

$collection->toArray();

但比我得到这个:

array:1 [▼
  1 => 1
]

我已经看过docs,但找不到!

【问题讨论】:

    标签: php arrays laravel collections


    【解决方案1】:

    您可以通过循环现有集合并将键分配为与当前键相同的键 -1 从集合中创建一个新数组。

    $newCollection = collect([]);
    $collection->each(function($item, $key) use ($newCollection) {
        $newCollection->put($key-1, $item);
    });
    
    
    //$newCollection has decremented keys
    

    【讨论】:

      【解决方案2】:

      从描述的所需输出看来,您可以使用原生 PHP 函数 array_values

      返回数组中的所有值并以数字方式索引数组。

      http://php.net/manual/en/function.array-values.php

      array_values($collection->toArray())
      

      【讨论】:

      • 感谢您的帮助。这不完全是我的意思。因为现在它以数字方式索引数组。我只需要递减每个数组键。
      猜你喜欢
      • 2019-04-08
      • 2018-01-15
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2017-04-27
      • 1970-01-01
      相关资源
      最近更新 更多