私は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');を割り当てる必要があります。あなたは新しい配列を作成しなければなりません。あなたは軸配列を変更しません。 – GYaN
また、 'as&$ row'を試すことができます –
' as&$ row'を使ったときは何も変わりませんでした。 – rufatZZ