首页 > 其他分享 >laravel 集合&数组

laravel 集合&数组

时间:2024-01-10 14:45:06浏览次数:28  
标签:laravel name age list collection item 数组 集合 array

# 列表 集合 & 数组
$_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;
    });

 

 

 

 

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

 

标签:laravel,name,age,list,collection,item,数组,集合,array
From: https://www.cnblogs.com/coder404/p/17943161

相关文章

  • 【Python基础】set(集合)
    简介集合跟我们学的列表有点像,也是可以存放一堆数据,不过集合有几个独特的特点,令其在整个Python语言中占有一席之地。相当于只有键没有值的字典(键则是集合的数据)。基本操作特点*里面的元素不可变,代表不能存储一个list、dict、在集合中,字符串、数字、元组等不可变类型可以存......
  • 【教3妹学编程-算法题】移除后集合的最多元素数
    3妹:好冷啊,冻得瑟瑟发抖啦2哥 :这才哪跟哪,上海这几天温度算是高的啦。你看看哈尔滨,那才是冰城。3妹:据说沈阳千名“搓澡大姨”支援哈尔滨?哈哈哈哈2哥 :就像今年的淄博烧烤,可能有炒作的成分3妹:不不,是去年的了,今年已经24年啦。2哥,你说哈尔滨最多能住多少人,这么多人涌入哈尔滨,能住......
  • 柔性数组
    接下来两个不同形式动态开辟数组空间1.柔性数组的使用 优--效率高,内存利用率高#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>typedefstructS{ inta; chararr[];//未知大小的柔性数组成员数组的大小是可以调整的}s;intmain(){ //printf(......
  • Java并发集合详解
    第1章:引言大家好,我是小黑,在这篇博客中,咱们将一起深入探索Java中的并发集合。多线程编程是一个不可或缺的部分,它能让程序运行得更快,处理更多的任务。但同时,多线程也带来了一些挑战,尤其是在数据共享和同步方面。为了解决这些挑战,Java提供了一系列的并发集合,这些集合为处理并发数据......
  • C 语言指针完全指南:创建、解除引用、指针与数组关系解析
    C语言中的指针创建指针我们可以使用引用运算符&获取变量的内存地址:intmyAge=43;//一个int变量printf("%d",myAge);//输出myAge的值(43)printf("%p",&myAge);//输出myAge的内存地址(0x7ffe5367e044)指针是一个将另一个变量的内存地址作为其值的变量。......
  • C 语言指针完全指南:创建、解除引用、指针与数组关系解析
    C语言中的指针创建指针我们可以使用引用运算符&获取变量的内存地址:intmyAge=43;//一个int变量printf("%d",myAge);//输出myAge的值(43)printf("%p",&myAge);//输出myAge的内存地址(0x7ffe5367e044)指针是一个将另一个变量的内存地址作为其值的变量......
  • 树状数组
    给出一个长度为nn的数组,完成以下两种操作:1.将第ii个数加上kk2.输出区间[i,j][i,j]内每个数的和朴素算法单点修改:O(1)O(1)区间查询:O(n)O(n)使用树状数组单点修改:O(logn)O(logn)区间查询:O(logn)O(logn)前置知识lowbit()lowbit()运算:非负整数xx在二进制表示下最低位1及其后面的0构......
  • 回溯法求解n个元素的集合的幂集
      过程:树中的根节点表示幂集元素的初始状态(为空集);叶子节点表示它的终结状态中幂集ρ(A)的8个元素;第i层(i=1,2,3,...,n)层的分支节点,则表示已对集合A中前i-1个元素进行了取/舍处理的当前状态(其中左分支表示“取”,右分支表示“舍”);将上述问题求解集合的幂集转换为先序遍历这棵......
  • JavaScript——数组的归并方法
    JavaScript的reduce和reduceRight的作用是通过遍历数组得到一个结果,原理如下:functionmyReduce(execute,initValue){constlength=this.lengthletresultfor(leti=0;i<length;i++){if(i===0){consthasInitValue=initV......
  • 数组
    数组的概述数组的特点:数组是有序排列的。1、数组属于引用数据类型的变量。数组的元素既可以是基本数据类型也可以是引用数据类型。2、创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。3、数组的长度一旦确定,就不能修改。数组的分类按......