首页 > 技术文章 > 公共方法整合(四)数组相关

YFYQ 2020-09-19 14:58 原文

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

先搞怪一波噻。

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

废话不多说,开始

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

 

 


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日

 

 

方法持续更新中。。。

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

只是自己已不在意。。

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

 

推荐阅读