集合到具有特定键的关联数组 [L5.2]
Collection to associative array with specific keys [L5.2]
我有下一个合集:
Collection {#356 ▼
#items: array:31 [▼
0 => {#359 ▼
+"id": 17
+"zone_id": 2
+"name_de": "Österreich"
+"name_en": "Austria"
+"name_iso": "AUSTRIA"
+"tld": "at"
+"iso3166": "AT"
+"phone": 43
+"vat_regex": "/^U[0-9]{8}$/"
+"shop_id": 17
+"country_id": 165
}
1 => {#360 ▼
+"id": 2
+"zone_id": 2
+"name_de": "Belgien"
+"name_en": "Belgium"
+"name_iso": "BELGIUM"
+"tld": "be"
+"iso3166": "BE"
+"phone": 32
+"vat_regex": "/^[01][0-9]{9}$/"
+"shop_id": 17
+"country_id": 25
}]
}
我想得到下一个结果作为关联数组:
[
"AT" => "Austria",
"BE" => "Belgium"
]
我正在尝试使用:
$keyed = $countries->map(function ($item) {
return [$item->iso3166 => $item->name_en];
});
但我得到:
Collection {#357 ▼
#items: array:31 [▼
0 => array:1 [▼
"AT" => "Austria"
]
1 => array:1 [▼
"BE" => "Belgium"
]
]
}
我做错了什么或者我怎样才能实现关联数组?
注意:我用的是Laravel 5.2所以mapWithKeys()集合方法没有实现
您想使用函数 ->pluck('name_en', 'iso3166')
。
我有下一个合集:
Collection {#356 ▼
#items: array:31 [▼
0 => {#359 ▼
+"id": 17
+"zone_id": 2
+"name_de": "Österreich"
+"name_en": "Austria"
+"name_iso": "AUSTRIA"
+"tld": "at"
+"iso3166": "AT"
+"phone": 43
+"vat_regex": "/^U[0-9]{8}$/"
+"shop_id": 17
+"country_id": 165
}
1 => {#360 ▼
+"id": 2
+"zone_id": 2
+"name_de": "Belgien"
+"name_en": "Belgium"
+"name_iso": "BELGIUM"
+"tld": "be"
+"iso3166": "BE"
+"phone": 32
+"vat_regex": "/^[01][0-9]{9}$/"
+"shop_id": 17
+"country_id": 25
}]
}
我想得到下一个结果作为关联数组:
[
"AT" => "Austria",
"BE" => "Belgium"
]
我正在尝试使用:
$keyed = $countries->map(function ($item) {
return [$item->iso3166 => $item->name_en];
});
但我得到:
Collection {#357 ▼
#items: array:31 [▼
0 => array:1 [▼
"AT" => "Austria"
]
1 => array:1 [▼
"BE" => "Belgium"
]
]
}
我做错了什么或者我怎样才能实现关联数组?
注意:我用的是Laravel 5.2所以mapWithKeys()集合方法没有实现
您想使用函数 ->pluck('name_en', 'iso3166')
。