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常用代码
Nov 23 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
PHP和.net中des加解密的实现方法
Feb 27 PHP
php发送post请求函数分享
Mar 06 PHP
PHP实现微信公众平台音乐点播
Mar 20 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
php删除数组指定元素实现代码
May 03 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
python实现的重启关机程序实例
2014/08/21 Python
Python实现把数字转换成中文
2015/06/29 Python
Python 中 Meta Classes详解
2016/02/13 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
写好自荐信的几个要点
2013/12/26 职场文书
什么是就业协议书
2014/04/17 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
董事长致辞
2015/07/29 职场文书
团干部培训班心得体会
2016/01/06 职场文书