Это, в основном, оболочка API для функций массива PHP. Но он имеет гораздо больше функций, которые приносят пользу обработке массива.
1. Избегайте брекет HELL
думает, что это дело с в 5 фигурных скобках:
shuffle(shuffle(arsort(array_unique(array_merge($array1,$array2)))));
Это ад, если массив с более чем 10 скобок, вы можете потерять след скобки в конце. Однако, если вы используете коллекцию, он может быть заменен:
collect($array1)
->merge($array2)
->unique()
->sort()
->shuffle()
->shuffle()
Это более читаемым, объектно-ориентированного и потока мышления.
2. Унификация использование API
Это PHP оригинальный вопрос API, что вы никогда не знаете, где массив должен в параметре. они просто не согласуются. например:
array_walk ($array , $callback);
array_map ($callback , $array);
array_merge ($array1 ,$array2);// return a new array
array_push ($array1 ,$value); // not return a new array
Laravel Collect только обеспечивает согласованный API, облегчает мою жизнь.
collect($array)
->each($callback)
->map($callback)
->merge($array2)
->push($value)
3.Collection процесс API массива ключ-значение лучше
Laravel сосредоточиться на обработке данных из базы данных. Так много случаев с ситуацией с ключом-значением, а не с индексированным массивом.Таким образом, коллекция Laravel имеет множество расширенных методов против оригинальных функций PHP, которые обрабатываются с помощью ключа массива. Например:
$array=[
["id"=>1,"name"=>"Apple"],
["id"=>2,"name"=>"Banana"],
["id"=>1,"name"=>"Apple"],
["id"=>2,"name"=>"Banana"],
];
$result= collect($array)->unique("id");
Результат будет:
Array
(
[0] => Array
(
[id] => 1
[name] => Apple
)
[1] => Array
(
[id] => 2
[name] => Banana
)
)
4. Работы с массивом многослойного
Большинство PHP API исходного массива имеет дело только с верхним слоем из массива , если вы хотите обработать глубокий слой массива, код может стать намного сложнее. Но многие API-интерфейсы коллекции Laravel позволяют вам получить доступ к глубокому слою массива.
Например:
$array=[
["id"=>1,"product"=>['name'=>"Apple"]],
["id"=>2,"product"=>['name'=>"Watermelon"]],
["id"=>3,"product"=>['name'=>"Banana"]],
];
$result= collect($array)->sortBy("product.name");
Результат будет:
Array
(
[0] => Array
(
[id] => 1
[product] => Array
(
[name] => Apple
)
)
[2] => Array
(
[id] => 3
[product] => Array
(
[name] => Banana
)
)
[1] => Array
(
[id] => 2
[product] => Array
(
[name] => Watermelon
)
)
)
5. Более недостающие хелперы массив из оригинального PHP
Кроме выше, увеличение сбора Laravel много очень полезных API-интерфейсов в каждой новой версии. Многие полезные помощники были разработаны для обработки типа «ключ-значение» массива и так полезны для разработки приложения. например: keyBy()
, where()
, isEmpty()
, isNotEmpty()
и так далее.
Кроме того, коллекция является макросъемкой, что означает, что вы можете расширить API Collection, сделать коллекцию более подходящей для вашего проекта.
В целом, коллекция Laravel - это мощная обработка массивов Помощник для моего развития.
@ZakariaAcharki такие вопросы ?? Если мы не можем говорить о терминах программирования, то где мы должны его спрашивать? –
Где ваш код и где вы боретесь, поэтому мы можем помочь !? если вы хотите, чтобы определение коллекций в laravel было вашим другом, или вы могли бы найти его просто в ** [Документация StackOverflow] (http://stackoverflow.com/documentation/laravel/2358/collections#t=201701041507132004739) ** или в ** [Официальная документация Laravel] (https://laravel.com/docs/5.1/eloquent-collections) ** .. почему мы должны пересмотреть это как ответ (как вы могли видеть в ответе ниже) и что плюс который предположил, что этот ответ дать здесь! –
@ZakariaAcharki Сначала я искал Google и читал Laravel Documentation, но все еще не понимал, что такое коллекция. Поскольку я спрашиваю о том, что такое коллекция, тогда нет образца кода! если качество ответа ниже не хорошо, это не моя вина. Я прошу таких людей, как вы, объяснить это более подробно. Если вы знаете ответ, тогда ответьте. –