0

0

合纵连横,记录集超强处理函数array_column的升级版实现

php中文网

php中文网

发布时间:2016-07-25 08:48:35

|

1216人浏览过

|

来源于php中文网

原创

靓点:简化操作,array_walk批处理,引用,内耗小。

应用场景:主要用来处理记录集(二维数组)
1、整合结果集(一维数组,如ids:[1,3,4,5],获奖用户名清单:['熊明','lijia','二郎神'])
2、组合键值对(一维数组,如标签:array('mysql'=>'url1','php'=>'url2'])
3 、缓存文件数据(id=>info)

注意事项:php5.5版本以作为内置函数,使用前请注意命名冲突。

From(EQPHP工具类):https://github.com/eqphp/framework/blob/master/www/class/fun.php

演示作品:http://www.eqphp.com/blog/list/
  1. //处理记录集(php5.5内置)
  2. static function array_column($data,$key='id',$column=null){
  3. $buffer=null;
  4. if ($column) {
  5. //k=>v
  6. if (strpos($column,',') === false) {
  7. foreach ($data as $value) {
  8. $buffer[$value[$key]]=$value[$column];
  9. }
  10. return $buffer;
  11. }
  12. //k=arr
  13. $field=explode(',',$column);
  14. foreach ($data as $value) {
  15. $id=$value[$key];
  16. array_walk($value,function ($v,$k) use (&$value,$field){
  17. if (!in_array($k,$field)) unset($value[$k]);
  18. });
  19. $buffer[$id]=$value;
  20. }
  21. return $buffer;
  22. }
  23. //id_arr
  24. foreach ($data as $value) {
  25. $buffer[]=$value[$key];
  26. }
  27. return $buffer;
  28. }
  29. //用法demo:
  30. //原记录集:
  31. $data=array(
  32. array('id'=>1,'name'=>'dubox','age'=>25,'girlfriend'=>'苏打绿'),
  33. array('id'=>4,'name'=>'小春子','age'=>21,'girlfriend'=>'不知道'),
  34. array('id'=>9,'name'=>'白痴','age'=>71,'girlfriend'=>'寡妇'),
  35. );
  36. $ids=array_column($data,'id');
  37. //out: array(1,4,9);
  38. $info=array_column($data,'name','girlfriend');
  39. //out: array('dubox'=>'苏打绿','小春子'=>'不知道','白痴'=>'寡妇');
  40. $cache=array_column($data,'id','name,age,girlfriend');
  41. //out: array(
  42. 1=>array('name'=>'dubox','age'=>25,'girlfriend'=>'苏打绿'),
  43. 4=>array('name'=>'小春子','age'=>21,'girlfriend'=>'不知道'),
  44. 9=>array('name'=>'白痴','age'=>71,'girlfriend'=>'寡妇'),
  45. );
复制代码


相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
python基础快速入门
python基础快速入门

共18课时 | 2.7万人学习

兄弟连大型网站架构之MySQL视频教程
兄弟连大型网站架构之MySQL视频教程

共36课时 | 10.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号