【发布时间】:2018-05-31 17:19:59
【问题描述】:
我正在使用 laravel 并制作了小 api。我对keyBy() 有疑问。
我得到这样的回应
"translate": [
0: {"id": 0, "lang": "az" },
1: {"id": 0, "lang": "ru" },
2: {"id": 0, "lang": "en" }
]
我想像这样更改这些数组的键:
"translate": [
"az": {"id": 0, "lang": "az" },
"en": {"id": 0, "lang": "ru" },
"ru": {"id": 0, "lang": "en" }
]
用那个sn-p
foreach ($categories as $key => $row) {
if ($row) {
$row->translate = $row->translate->keyBy('lang');
}
}
但是结果是一样的。数组键不会改变。我不知道为什么。我只是dd($row->translate),我得到了我想要的结果,但最后的结果和以前一样。谢谢!
【问题讨论】:
-
你必须在一个新的数组变量中分配`$row->translate->keyBy('lang');`。意味着您必须创建新阵列。您不会更改轴阵列。
-
你也可以试试
as &$row -
当我使用
as &$row时没有任何改变。
标签: php laravel api laravel-5.5 laravel-collection