Arrays Laravel集合数组到对象

Arrays Laravel集合数组到对象,arrays,object,laravel,collections,iteration,Arrays,Object,Laravel,Collections,Iteration,我正在接收一个数组,但希望每个数组都是一个对象 我试试这个: $objects->each(function($object) { return new Object($object); }); 但是$objects没有改变。我觉得基于collection->each和array\u map的描述,这应该是可行的。但很明显,事实并非如此,一位同事认为我是外星人,因为我认为这应该奏效。。所以我肯定错过了什么 有没有这样一种非常有效的方法来迭代集合并将数组转换为对象?和如果这不是->

我正在接收一个数组,但希望每个数组都是一个对象

我试试这个:

$objects->each(function($object) {
    return new Object($object);
});
但是$objects没有改变。我觉得基于collection->each和array\u map的描述,这应该是可行的。但很明显,事实并非如此,一位同事认为我是外星人,因为我认为这应该奏效。。所以我肯定错过了什么

有没有这样一种非常有效的方法来迭代集合并将数组转换为对象?和如果这不是->每个人所做的。。它有什么作用?

你应该使用地图,而不是每个地图

函数映射将创建一个新数组,其中每个元素都是使用输入数组的元素调用所提供函数的结果

每个函数只对数组的每个元素执行函数

数组映射的示例:

在这一点上:

$input保持不变 $output的值为array1、4、9
好吧,这有点道理。。因此,如果“each”不影响调用它的集合中的项,那么返回的值会发生什么变化;如果在问题的例子中说回针。。我到处都找不到针。dd$对象的结果是什么?请澄清这是什么类型的集合以及内部数组包含什么。pre->each it is new collection$arr其中$arr是对象数组的数组。。ie['id'=>7,'name'=>object7'],['id'=>8,'name'=>object8']。在->每次调用后,它保持不变
$input = array(1, 2, 3);
$output = array_map(function($x) { return $x * $x; }, $input);