公共方法整合(四)数组相关

对,没错,他来了,他来了,他又一次的来了

先搞怪一波噻。

本篇呢主要提供的就是一些与数组相关的公共方法咯

废话不多说,开始

  1. 根据二维数组中的某一列值进行排序
  2. 获取二维数组中的最大值或最小值键名值
  3. 判定数组中是否有此键名
  4. 删除数组中指定元素
  5. 获取二维数组某个字段值相同的某一列数据并重新组合
  6. 数组的交集与差集(即相同值与不同值)
  7. 获取数组中指定的数据并组成一个新的数组
  8. 给数组内字符串统一编辑

 

 


1.根据二维数组中的某一列值进行排序

排序一直是大家比较常用的东东。

一般一维数组排序有各种方法来进行

但是二维数组就会麻烦一些了

主要使用 了  array_column()  方法 与  array_multisort()  方法

方法如下:

        #一维数组排序
        sort();    # 以升序对数组排序
        rsort();   # 以降序对数组排序
        asort();   # 根据值,以升序对关联数组进行排序
        ksort();   # 根据键,以升序对关联数组进行排序
        arsort();  # 根据值,以降序对关联数组进行排序
        krsort();  # 根据键,以降序对关联数组进行排序
        #排序
         $data = [
            "0" => [
                'time' => '2020-12-15 09:00:00',
                'money' => '0.11',
            ],
            "1" => [
                'time' => '2020-12-15 11:00:00',
                'money' => '0.15',
            ],
            "2" => [
                'time' => '2020-12-15 10:00:00',
                'money' => '0.17',
            ],
        ];
        #二维数组排序
        array_multisort();
        #SORT_ASC 升序
        #SORT_DESC 降序  
        $times = array_column($data,'time');
        array_multisort($times,SORT_ASC,$data);

 

2020年09月19日

 


 

2.获取二维数组中的最大值或最小值键名值

获取二维数组其最重要的核心函数为 array_search()  方法

方法如下:

        #一维数组获得最大值最小值
        max();  #获取最大值
        min();  #获取最小值
        #二维数组获取最大值对应ID
        $data = [
            "0" => [
                'time' => '2020-12-15 09:00:00',
                'money' => '0.19',
            ],
            "1" => [
                'time' => '2020-12-15 11:00:00',
                'money' => '0.15',
            ],
            "2" => [
                'time' => '2020-12-15 10:00:00',
                'money' => '0.17',
            ],
        ];
        $lists  = array_column($data, 'money');
        $id = array_search(max($lists), $lists); #获取对应键名

 

2020年09年19日

 

 


3.判定数组中是否有此键名

使用方法  array_key_exists()

使用如下:

    $array = [];

    if(!array_key_exists('istrue',$array))
    {
        return false;
    }

 

2020年09月28日

 


4.删除数组中指定元素

使用方法 array_search() 和array_splice()

先使用array_search()获得键名,然后使用array_splice()移除对应元素;

也可以直接使用unset() 方法删 array_search()获得的键名

$array = [1,2,3];

#方法一
array_splice($array,array_search(1, $array),1);

#也可以使用
unset(array_search(1, $array));

 

2020年10月12日

 


 

5.获取二维数组某个字段值相同的某一列数据并重新组合

 如果获取二维数组某一列值很好办,用array_column 方法获取即可

但是如果只获取该字段 值等于1 的user_id 怎么办 呢?

使用以下方法即可

array_column(array_filter($treelist,function($val){
    if($val['levels'] == 1){
        return $val['user_id'];
    }else{
        return false;
    }
}),'user_id');

2021年01月26日

 


 

6.数组的交集与差集(即相同值与不同值)

交集比对

array_intersect($arr1,$arr2...)   比较两个(或更多个)数组的键值,并返回交集。 只比对键值,不比对键名

array_intersect_assoc($arr1,$arr2..) 比较两个(或更多个)数组的键值,并返回交集。 键名与键值都比对

差集比对

array_diff($arr1,$arr2...)  比较两个(或更多个)数组的键名和键值,并返回交集。  只比对键值,不比对键名

array_diff_assoc($arr1,$arr2...)   比较两个(或更多个)数组的键名和键值,并返回交集。 键名与键值都比对

 

2021年01月26日

 


 

 7.根据二维数组中的某一列值进行排序

 获取数组中指定的键名对应的键值并重新组合成一个新的数组

用到了以下的两个函数  array_flip()array_intersect_key()

array_flip() 数组函数:反转数组中的键名和对应关联的键值

array_intersect_key()数组函数:比较两个数组的键名,并返回交集

具体代码如下:

$array = ['name'=>'123','sex'=>'18','birthday'=>'2022-12-12'];
$datas =  ['name','sex'];
$result = array_intersect_key($array,array_flip($datas));

 


 

8. 给数组内字符串统一编辑

使用场景:主要是使用在 缩略图列表添加前缀使用

使用函数 array_map()

array_map()数组函数:将函数作用到数组中的每个值上,每个值都乘以本身,并返回带有新的值的数组:

代码如下:

$infos = '缩略图列表';
$images = array_map(function ($item){return cdnurl($item,true);},explode(',',$infos['images']));

 

2023年02月04日

 


 

 

方法持续更新中。。。

时间终会冲淡一切,但总有一些磨灭不掉。。

只是自己已不在意。。

终究是年纪不同看法亦不同。。

 

posted @ 2020-09-19 14:58  御风琊穹  阅读(200)  评论(0编辑  收藏  举报

春风十里,我喜欢你。可是你喜欢的人不喜欢你,哈哈....
人来人往,莫失莫忘。最终还是选择淡忘于回忆之中...
落日余晖,待你而归。但你终究不是为我而归..
一米阳光,温暖安放;心若向阳,无谓悲伤;轻安喜乐,次第花开 。