-
Notifications
You must be signed in to change notification settings - Fork 8
Home
vikin edited this page Feb 9, 2017
·
17 revisions
###辅助函数
| ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ |
|---|---|---|---|---|---|---|---|---|---|
| av | |||||||||
| ###集合可用方法 |
| ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ | ^_^ |
|---|---|---|---|---|---|---|---|---|---|
| map | collapse | avg | has | max | min | toJson | toArray | take | pluck |
| where |
遍历整个集合,并将key于val数值传入至回调函数;并且可以在回调函数中return来修改值;
$vcollect = vcollect([1, 2, 3, 4]);
$vcollect->map(function($key, $value) {
return $key+$value;
});
//[1, 3, 5, 7]将集合转换为一维数组
$vcollect = vcollect([1, 2, [3, 4]]);
$vcollect->collapse();你将得到:
[1, 2, 3, 4]$vcollect = vcollect([1, 2, 3, 4, 5]);
$vcollect->avg();您将得到一个整型或浮点型结果
(int)3$vcollect = vcollect([
['a'=>4],
['a'=>6],
8
]);
$vcollect->avg('a');您将得到一个整型或浮点型结果
(int)5检查集合中是否含有指定的键
$vcollect = vcollect(['account_id' => 1, 'product' => 'Desk']);
$vcollect->has('email');
// false返回集合中的最大值
$vcollect = vcollect([1,2,3,4,5]);
$vcollect->max();
//(int)5你也可以通过传入键值来获取二维数组中指定键的最大值
$vcollect = vcollect([
['a'=>1.1],
['a'=>4],
['a'=>8]
]
);
$vcollect->max('a');
//(int)8返回集合中的最小值
$vcollect = vcollect([1,2,3,4,5]);
$vcollect->min();
//(int)1你也可以通过传入键值来获取指定键的最小值
$vcollect = vcollect([
['a'=>1.1],
['a'=>4],
['a'=>8]
]
);
$vcollect->min('a');
//(float)1.1将集合进行JSON编码
$vcollect = vcollect([
'a'=>4,
[1, 'a'=>2, 3],
[4, [ 5, 'a'=>6 ]]
]);
$vcollect->toJson();
//(string)'{"a":4,"0":{"0":1,"a":2,"1":3},"1":[4,{"0":5,"a":6}]}'将集合结果转换为数组
$vcollect = vcollect([
'a'=>4,
[1, 'a'=>2, 3],
[4, [ 5, 'a'=>6 ]]
]);
$vcollect->collapse()->toArray();
//结果:
//array (size=6)
// 0 => int 4
// 1 => int 1
// 2 => int 2
// 3 => int 3
// 4 => int 4
// 5 =>
// array (size=2)
// 0 => int 5
// 'a' => int 6获取指定数量的集合
$vcollect = vcollect([1,2,3,4,5]);
$vcollect->take(1)->toArray();
//(array)[1]也可以通过传入负数从集合后面获取指定数量的集合
$vcollect->take(-2)->toArray();
//(array)[4, 5]快速获取多层集合中指定「键」所有对应的值:
$vcollect = vcollect([
['developer' => ['name' => 'Taylor'], 'id' => 2],
['developer' => ['name' => 'Abigail'], 'id' => 5]
]);
$vcollect->pluck('developer.name');
//['Taylor', 'Abigail']你也可以指定结果集的键
$vcollect->pluck('developer.name', 'id');
//[2=>'Taylor', 5=>'Abigail']快速过滤或筛选集合
$vcollect = vcollect([
['developer' => ['name' => 'Taylor'], 'id' => 2],
['developer' => ['name' => 'Abigail'], 'id' => 5]
]);
$vcollect->where('developer.name', 'Taylor')->toArray();
//[ ['developer' => ['name' => 'Taylor'], 'id' => 2] ]###辅助函数
快速获取数组值,并创建变量;
语法糖:av(['数组值' => '变量名', .....], [数据源])
av(
['Taylor.developer.web.back_end' => 'Taylor_web_back_end', ],
[
'Taylor' => ['developer' => ['web' => ['back_end' => ['PHP', 'JAVA']], 'ios' => 'swift'], 'id' => 1],
'Abigail' => ['developer' => ['web' => ['back_end' => ['PHP', 'ASP']], 'ios' => 'object-c'], 'id' => 2]
]
);当你访问 $Taylor_web_back_end 变量的时候,你将会得到 ['PHP', 'JAVA'];