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加密解密的代码
Oct 09 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
php返回相对时间(如:20分钟前,3天前)的方法
Apr 14 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 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
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
Smarty模板配置实例简析
2019/07/20 PHP
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
不使用 JS 匿名函数理由
2017/11/17 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python根据距离和时长计算配速示例
2014/02/16 Python
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
用C++封装MySQL的API的教程
2015/05/06 Python
让Python代码更快运行的5种方法
2015/06/21 Python
python实现自动重启本程序的方法
2015/07/09 Python
基于Python os模块常用命令介绍
2017/11/03 Python
python绘制地震散点图
2019/06/18 Python
Python 爬虫的原理
2020/07/30 Python
Django多数据库联用实现方法解析
2020/11/12 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
初二物理教学反思
2016/02/19 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis