Я ищу взять коллекцию и вернуть плоские массивы, содержащие два поля из коллекции. То, что я хочу:Коллекция Laravel - список несколько значений
$collection = new Collection([
[
"a"=>"a1",
"b"=>"b1",
"c"=>"c1"
],
[
"a"=>"a2",
"b"=>"b2",
"c"=>"c2"
],
[
"a"=>"a3",
"b"=>"b3",
"c"=>"c3"
]
]);
//desired output:
[
["a1","b1"],
["a2","b2"],
["a3","b3"]
];
Я бы подумал, что это функция, но это не так:
$collection->lists(["a","b"]);
Мое текущее решение не кажется очень эффективным при условии, что они могут иметь много тысяч строки:
$collection->lists("a")->zip($collection->lists("b"));
Есть функция, которой я не хватает? Благодарю.
Edit: Я также использовал карту так:
$collection->map(function($row)){
return [$row['a'],$row['b']];
}
Это кажется немного больше обычай, чем я хочу. Я может в конечном итоге писать обертку для коллекции с помощью этой функции, если не существует собственный способ ..
Это отличное решение. Я был фактически брошен этим и удивлен, увидев, что метод pluck не принимает это по умолчанию. Похоже, мне это нужно. – jiraiya
В каком файле следует добавить это письмо? – Ken
@ Ken вы можете сделать это разными способами. Если у вас не так много макросов, вы можете поместить их в метод 'register' вашего' AppServiceProvider'. В качестве альтернативы вы можете проверить следующие [темы форума] (https://laracasts.com/discuss/channels/general-discussion/best-practices-for-custom-helpers-on-laravel-5) для альтернатив, сгруппировать их в файл и использование автозагрузки. –