gpt4 book ai didi

php - Laravel集合.each()+ array_push

转载 作者:行者123 更新时间:2023-12-02 11:23:20 25 4
gpt4 key购买 nike

需要有关laravel .each()方法中的array_push的帮助。我无法在此代码上获得容器数组:

$imagesData = array();
collect($data['images'])->each(function($v, $k) use($imagesData){

$v['created_at'] = date('Y-m-d H:i:s');
$v['updated_at'] = date('Y-m-d H:i:s');
$v['image_id'] = $v['image_id'];
$v['settings'] = json_encode($v['settings']);

array_push($imagesData, $v);

});

$result = Images::insert($imagesData, true);

基本上,上面的代码我想对.each()中的数据进行迭代,然后将其插入数组容器并按批插入。
注意:当我使用foreach时不会有问题,但是我需要使用.each()代替foreach。

谢谢

最佳答案

使用 Collection::map 方法是做同一件事的一种更易读的方法:

$imagesData = collect($data['images'])
->map(function($item) {

$item['created_at'] = date('Y-m-d H:i:s');
$item['updated_at'] = date('Y-m-d H:i:s');
$item['image_id'] = $item['image_id'];
$item['settings'] = json_encode($item['settings']);

return $item;
})
->all();

$result = Images::insert($imagesData, true);
mapeach一样在数组上进行迭代。区别在于 each不返回任何内容(因此您需要自己构建新的数组),而 map会自动为函数内部的 return生成一个新的项目集合。在 map之后,您可以使用 all以纯数组形式返回结果。

关于php - Laravel集合.each()+ array_push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com