公共方法整合(四)数组相关
对,没错,他来了,他来了,他又一次的来了
先搞怪一波噻。
本篇呢主要提供的就是一些与数组相关的公共方法咯
废话不多说,开始
- 根据二维数组中的某一列值进行排序
- 获取二维数组中的最大值或最小值键名值
- 判定数组中是否有此键名
- 删除数组中指定元素
- 获取二维数组某个字段值相同的某一列数据并重新组合
- 数组的交集与差集(即相同值与不同值)
- 获取数组中指定的数据并组成一个新的数组
- 给数组内字符串统一编辑
排序一直是大家比较常用的东东。
一般一维数组排序有各种方法来进行
但是二维数组就会麻烦一些了
主要使用 了 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日
获取二维数组其最重要的核心函数为 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日
使用方法 array_key_exists()
使用如下:
$array = []; if(!array_key_exists('istrue',$array)) { return false; }
2020年09月28日
使用方法 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日
如果获取二维数组某一列值很好办,用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日
交集比对
array_intersect($arr1,$arr2...) 比较两个(或更多个)数组的键值,并返回交集。 只比对键值,不比对键名
array_intersect_assoc($arr1,$arr2..) 比较两个(或更多个)数组的键值,并返回交集。 键名与键值都比对
差集比对
array_diff($arr1,$arr2...) 比较两个(或更多个)数组的键名和键值,并返回交集。 只比对键值,不比对键名
array_diff_assoc($arr1,$arr2...) 比较两个(或更多个)数组的键名和键值,并返回交集。 键名与键值都比对
2021年01月26日
获取数组中指定的键名对应的键值并重新组合成一个新的数组
用到了以下的两个函数 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));
使用场景:主要是使用在 缩略图列表添加前缀使用
使用函数 array_map()
array_map()数组函数:将函数作用到数组中的每个值上,每个值都乘以本身,并返回带有新的值的数组:
代码如下:
$infos = '缩略图列表'; $images = array_map(function ($item){return cdnurl($item,true);},explode(',',$infos['images']));
2023年02月04日
方法持续更新中。。。
时间终会冲淡一切,但总有一些磨灭不掉。。
只是自己已不在意。。
终究是年纪不同看法亦不同。。