我正在与laravel合作,并做出了小小的API。我遇到了keyBy()
问题。 我得到的反应是这样keyBy()不会更改密钥。 Laravel 5.5
"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" }
]
与片段
foreach ($categories as $key => $row) {
if ($row) {
$row->translate = $row->translate->keyBy('lang');
}
}
但结果是一样的。数组键不会更改。我不知道为什么。我只是dd($row->translate)
,我得到了我想要的结果,但最后的结果与之前一样。谢谢!
你必须在新的数组变量中赋值$ row-> translate-> keyBy('lang');'。意味着你必须创建新的数组..你不会改变axisting数组。 – GYaN
你也可以尝试'as&$ row' –
当我使用'as&$ row'时,没有什么改变。 – rufatZZ