如何在收集laravel中添加数字?

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

如果我dd($items),结果如下:

enter image description here

我想为每个数组添加数字

所以第一个数组存在值为1的键号

第二个数组,存在值为2的键编号

等等

我试着这样:

$items->map(function ($item) {
    $item['number'] = 1;
    return $item;
});

数字不会增加。我很困惑,让柜台

我怎么解决这个问题?

php laravel collections counter laravel-5.6
3个回答
4
投票

你可以这样试试

$newItems = $items->map(function ($item, $index) {
    $item['number'] =  $index + 1;
    return $item;
});

编辑:基于评论(我不推荐它,因为那样你就无法获得雄辩模型的好处。它只是给你一个数组)

$newItems = $items->map(function ($item, $index) {
    $number = ['number' =>  $index + 1];
    return $number + $item->toArray();
});

0
投票
 $counter=1;
 $items->map(function ($item) use(&$counter){
   $item['number'] = $counter++;
   return $item;
});

0
投票

你可以使用array_merge

$newItems = $items->map(function ($item, $index) {

  return array_merge(array("number" =>  $index + 1), $item);;
});
© www.soinside.com 2019 - 2024. All rights reserved.