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 Class 文章
Apr 04 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
分享php分页的功能模块
Jun 16 PHP
24条货真价实的PHP代码优化技巧
Jul 28 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
php微信公众号开发之欢迎老朋友
Oct 20 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
PHP高并发和大流量解决方案整理
Dec 24 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
德劲1107的电路分析与打磨
2021/03/02 无线电
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php中常用的预定义变量小结
2012/05/09 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
JavaScript isArray()函数判断对象类型的种种方法
2010/10/11 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
python实现定时播放mp3
2015/03/29 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
Python面向对象编程基础实例分析
2020/01/17 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Python中无限循环需要什么条件
2020/05/27 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
python如何导入依赖包
2020/07/13 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
可口可乐广告词
2014/03/20 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书