PHP Laravel foreach 不修改值

标签 php foreach pass-by-reference laravel-5.4

我正在编写代码来对父级中的 Eloquent 关系实例进行排序。

$categories = CategoryMain::with('subs')->get();
    foreach($categories as &$category){
        $category->sub = $category->subs->sortBy('name');
    }

我在 foreach 循环内得到了正确的排列,我通过执行 die(var_dump()); 来验证这一点,

然而,一旦到了外面,就好像根本没有改变一样。 为什么会发生这种情况?

最佳答案

尝试这样的事情,看看输出是什么:

$categories = CategoryMain::with('subs')->get();

$counter = 0;
foreach($categories as $category) {
    $categories[$counter]->sub = $category->subs->sortBy('name');
    $counter++
}
//output the data of catgories
dd($categories);

关于PHP Laravel foreach 不修改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558124/

相关文章:

javascript - 在 map 上突出显示自定义位置

php - PHP 的循环引用问题有多大,我应该担心吗?

在函数上下文中使用 this 关键字的 JavaScript 回调

c# - 如何将这个双 foreach 循环转换为 lambda 表达式?

javascript - 有没有一种优雅的方法来 "simulate"通过引用传递 getter?

iphone - 在 objective-c 中保留按值传递的变量是否可以?

php - 如何从 Web 应用程序连接到原始 TCP 套接字服务器?

C# 使用/连接到 webhost 中的 MySQL 数据库 (One.com)

php - 从 MySQL 列获取数组

c++ - 如何通过多态引用传递unique_ptr?