如何在 Laravel 中向集合添加新值?
Laravel 中的集合是一个 API 包装器,它可以帮助你处理对数组执行的不同操作。它使用 **Illuminate\Support\Collection** 类来处理 Laravel 中的数组。
要从给定数组创建集合,你需要使用 **collect()** 辅助方法,该方法返回一个集合实例。稍后,你可以在集合实例上使用一系列方法,例如转换为小写、对集合进行排序。
示例 1
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller{ public function index() { $mynames = collect(['Andria', 'Josh', 'James', 'Miya', 'Henry']); print_r($mynames); } }
输出
当你在浏览器中测试它时,你会得到以下输出:
Illuminate\Support\Collection Object( [items:protected] => Array( [0] => Andria [1] => Josh [2] => James [3] => Miya [4] => Henry ) [escapeWhenCastingToString:protected] => )
要添加新值,你可以在集合上使用 **push()** 或 **put()** 方法。
示例 2
使用 **push()** 方法。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller{ public function index() { $mynames = collect(['Andria', 'Josh', 'James', 'Miya', 'Henry']); $mynames->push('Heena'); print_r($mynames); } }
输出
上述代码的输出为:
Illuminate\Support\Collection Object( [items:protected] => Array( [0] => Andria [1] => Josh [2] => James [3] => Miya [4] => Henry [5] => Heena ) [escapeWhenCastingToString:protected] => )
示例 3
使用 put() 方法
当你的集合具有 **键:值** 对时,使用 **put()** 方法。
['firstname' => 'Siya', 'lastname' => 'Khan', 'address'=>'xyz']
让我们使用 put() 方法向上述集合添加另一个键:值。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller{ public function index() { $stdDetails = collect(['firstname' => 'Siya', 'lastname' => 'Khan', 'address'=>'xyz']); $stdDetails->put('age','30'); print_r($stdDetails); } }
输出
上述代码的输出为:
Illuminate\Support\Collection Object( [items:protected] => Array( [firstname] => Siya [lastname] => Khan [address] => xyz [age] => 30 ) [escapeWhenCastingToString:protected] => )
示例 4
在具有数组值的集合上使用 push。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller{ public function index() { $myNames = collect([ ['userid'=>1, 'name'=>'Andria'], ['userid'=>2, 'name'=>'Josh'], ['userid'=>3, 'name'=>'James'] ]); $myNames->push(['userid'=>4, 'name'=>'Miya']); print_r($myNames); } }
输出
上述代码的输出为:
Illuminate\Support\Collection Object( [items:protected] => Array( [0] => Array( [userid] => 1 [name] => Andria ) [1] => Array( [userid] => 2 [name] => Josh ) [2] => Array( [userid] => 3 [name] => James ) [3] => Array( [userid] => 4 [name] => Miya ) ) [escapeWhenCastingToString:protected] => )
广告