php实现数组纵向转横向并过滤重复值的方法分析


Posted in PHP onMay 29, 2017

本文实例讲述了php实现数组纵向转横向并过滤重复值的方法。分享给大家供大家参考,具体如下:

一、问题

有数组:

array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);

要求转换成如下结果(数组纵向转横向并过滤重复值):

array(
  0=>array(5=>'黑xx', 8=>'灰'),
  1=>array(42=>'XXL', 40=>'XL'),
);

二、解决方法:

方法1:

$a = array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);
foreach($a as $r) {
 $b[key($r)] = current($r);
 next($r);
 $c[key($r)] = current($r);
}
$b = array($b, $c);
print_r($b);

方法2:

$arr = array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);
$result = array();
foreach($arr as $a){
  $keys = array_keys($a);
  $vals = array_values($a);
  $result[0][$keys[0]] = $vals[0];
  $result[1][$keys[1]] = $vals[1];
}
print_r($result);

最简单的写法:

$a = array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);
foreach($a as $r) {
 $i = 0;
 while(list($k, $v) = each($r)) $b[$i++][$k] = $v;
}
print_r($b);

最终运行结果均为:

Array
(
  [0] => Array
    (
      [5] => 黑xx
      [8] => 灰
    )
  [1] => Array
    (
      [42] => XXL
      [40] => XL
    )
)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php 数组二分法查找函数代码
Feb 16 PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
php中session与cookie的比较
Jan 27 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
Jul 28 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
PHP实现动态获取函数参数的方法示例
Apr 02 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
Ajax+Jpgraph实现的动态折线图功能示例
Feb 11 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 #PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 #PHP
PHP实现的简单AES加密解密算法实例
May 29 #PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 #PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 #PHP
PHP 网站修改默认访问文件的nginx配置
May 27 #PHP
yii插入数据库防并发的简单代码
May 27 #PHP
You might like
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
jquery动态加载js三种方法实例
2013/08/03 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
详解Python pygame安装过程笔记
2017/06/05 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
详解Pytorch显存动态分配规律探索
2020/11/17 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
橄榄树药房:OLIVEDA
2019/09/01 全球购物
工程造价专业求职信
2014/07/17 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
打架检讨书
2015/01/27 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL