2017-10-04 124 views
1

laravel 5.5 這裏是集合:laravel collections-> keyBy發現類似鑰匙

$collections = collect(['name' => 'Rob'], ['nickname' => 'Robby']);

的兩種方法:

$collections->keyBy('name') 
$collections->keyBy('nickname') 

回報角球面上結果

Collection {#246 ▼ 
    #items: array:1 [▼ 
    "" => "Rob" 
    ] 
} 

爲我看起來像錯了...

+0

你期望的數據結構是什麼? –

回答

0

您的問題是你的集合格式不正確,像這樣做:

$collections = collect([ //main collection array 
      [ 'name' => 'Rob1', 'nickname' => 'Robby1' ] //object 0 inside collection array with well formated keys => values 
     ]); 

現在當你使用:

$collections->keyBy('name') 
$collections->keyBy('nickname') 

它將按預計工作

+0

得到了它......我的壞我認爲keyBy是通過鍵搜索集合。但keyBy只是替換(鍵)內的索引 –

1

我想你應該傳遞一個參數數組..嘗試這個

$collections = collect([['name' => 'Rob'], ['nickname' => 'Robby']]); 
0

這樣的結果是

Collection {#246 ▼ 
    #items: array:2 [▼ 
    "Rob" => array:1 [▼ 
     "name" => "Rob" 
    ] 
    "" => array:1 [▼ 
     "nickname" => "Robby" 
    ] 
    ] 
} 

Collection {#246 ▼ 
    #items: array:2 [▼ 
    "" => array:1 [▼ 
     "name" => "Rob" 
    ] 
    "Robby" => array:1 [▼ 
     "nickname" => "Robby" 
    ] 
    ] 
} 

看起來仍然無效搜索在集合.. 。 and

$collections->keyBy('nick')

回報

Collection {#246 ▼ 
    #items: array:1 [▼ 
    "" => array:1 [▼ 
     "nickname" => "Robby" 
    ] 
    ] 
} 
+0

所有三個keyBy不是空的,甚至最後 –