laravel 集合&数组

# 列表 集合 & 数组
$_list_collection = collect([['name' => 'John', 'age' => 25],['name' => 'Jane', 'age' => 30]]);
$_list_array= [['name' => 'John', 'age' => 25],['name' => 'Jane', 'age' => 30]];

# 一维 集合 & 数组
$_collection = collect([1,2,3]);
$_array= [1,2,3];

 

1、增加

$_collection->push(3);
$_array[] = 3;
//输出
array:4 [▼
  0 => 1
  1 => 2
  2 => 3
  3 => 3
]
 
$_collection->put('name','yuan');
$_array['name'] = 'yuan';
//输出
array:4 [▼
  0 => 1
  1 => 2
  2 => 3
  "name" => "yuan"
]

 

2、修改

$_collection->put(0, 'test');
$_array[0] = 'test';

 

3、查询

    #1.根据键值获取
    $res = $_collection->get(1);
    $res = $_array[1];
    //输出    2

    #2.删除第一个元素,并返回被删除的元素
    $first = $_collection->shift();
    $first = array_shift($_array);
    //输出    1

    #3.给定值查询,找到指定的键值,则返回对应的键名,否则返回 FALSE
    $res = $_collection->search(2);
    $res = array_search(2, $_array);
    //输出    1

    #4.严格比较 数据类型和值都一致
    $res = $_collection->search('2', true);
    $res = array_search('2', $_array, true);
    //输出    false

 

4、移除

    # 根据键值删除
    $_collection->forget(1);
    unset($_array[1]);

    # 从指定位置开始,移除指定个数元素 ,若传入含有新元素的数组作为第三个参数以取代集合中被移除的元素
    $_collection->splice(0, 1);
    array_splice($_array, 0, 1);

     //输出
     array:2 [▼
      0 => 2
      1 => 3
    ]

 

5、统计

    #1.长度、个数
    $_collection->count();
    count($_array);    
    
    #2.求和
    $_collection->sum();
    $_list_collection->sum('age'); // 多维

    array_sum($_array);
    array_sum(array_column($_list_array, 'age'));// 多维
    
    #3.平均值
    $_collection->avg();
    $_list_collection->avg('age'); // 多维
    
    #4.最大值
    $_collection->max();
    $_list_collection->max('age'); // 多维    
    
    #5.最小值
    $_collection->min();
    $_list_collection->min('age'); // 多维

 

6、筛选

    #1.获取列
    array_column($_list_array, 'name');
    $_list_collection->pluck('name');

    #2. 第一个元素
    $_collection->first();
    $_array[0];


    #3.最后一个元素
    $_collection->last();
    $_array[count($_array) - 1];


    #4.满足条件的第一条数据
    $_list_collection->first(function ($item, $key) {
      return (is_array($item) ? $item['age'] : $item->age) > 25;
    });
    //输出  age>25 的第一条数据


    #5.列表筛选,返回元素
    $_list_collection->where('age', '>', 25);


    #6.去重
    $_collection->unique(); // 一维
    $_list_collection->unique('age'); // 多维

    array_unique($_array);// 一维

 

 

7、排序

    #1.键名重新生成
    $_collection->values();

    array_values($_array);


    #2.随机排序
    $_collection->shuffle();

    shuffle($_array);


    #3.返回新的倒序的集合
    $_collection->reverse();

    array_reverse($_array);


    #4.返回从索引起选定部分
    $_collection->slice(1, 2);

    array_splice($_list_array, 1, 2);


    #5一维集合&数组排序
    $_collection->sort(function ($a, $b) {
      //return < -1 | 1 | 0 >;
    });#不传回调函数,则默认由小到大

    sort($_array);


    #6.列表集合排序
    $_list_collection->sortBy('age'); // 以某列排序
    $_list_collection->sortBy(function ($item, $key) {
      //return <参于排序的数 >;
    });
    #排序从小到大依次为 undefined、字符或字符串、数字、数组对象


    #7.集合排序倒序,性质同 `sortBy`
    $_list_collection->sortByDesc('age');

    #8.取指定数量的元素的集合
    $_collection->take(2);#数量为负数,表示从末尾取

 

8、判断

    #1.是否为空
    $_collection->isEmpty();
    $_collection->isNotEmpty();

#2.是否含有指定值 $_collection->contains(3); in_array(3, $_array); $_list_collection->contains('age', 25); // 多维 in_array(25, array_column($_list_array, 'age')); $_list_collection->contains(function ($key, $value) { #return <判断条件>; });
#3.是否含有指定的键 $_list_collection->has('age'); in_array('age', array_keys($_list_array[0]));

 

 

9、元素拼接

    #元素拼接
    $_collection->implode('、'); // 一维
    implode('、', $_array);

    $_list_collection->implode('name', '、'); // 多维中的某列
    implode('、', array_column($_list_array, 'name'));

 

10、遍历循环

    #1.遍历
    $_list_collection->each(function ($item, $key) {
      dump($item);
      dump($key);
      //return false;# 终止遍历
    });

    #2.遍历返回新的集合
    $_list_collection->map(function ($item, $key) {
      $item['age'] += 1;
      return $item;
    });
    
    
    #3.遍历修改,直接更改原有集合
    $_list_collection->transform(function ($item, $key) {
      $item['age'] += 1;
      return $item;
    });

 

11、转换

    #1.相互转化
    $_collection->toArray();
    collect($_array);

    #2.转化为JSON
    $_collection->toJson();
    json_encode($_array);

 

 

 

 

参考 https://blog.csdn.net/qq_20869933/article/details/132914208

 

posted on 2024-01-10 14:39  你看我哪里像好人  阅读(29)  评论(0编辑  收藏  举报

导航