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 小乘法表实现代码
Jul 16 PHP
php动态实现表格跨行跨列实现代码
Nov 06 PHP
php不用正则验证真假身份证
Nov 06 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 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
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
php二维码生成以及下载实现
2017/09/28 PHP
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
JS编程小常识很有用
2012/11/26 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
vue中如何使用ztree
2018/02/06 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
Python中zip()函数用法实例教程
2014/07/31 Python
python文件写入实例分析
2015/04/08 Python
Python制作Windows系统服务
2017/03/25 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
浅析Python数据处理
2018/05/02 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
python中random模块详解
2021/03/01 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
计算机专业自荐信
2013/10/14 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
客服专员岗位职责
2014/02/28 职场文书
工作保证书
2015/01/17 职场文书
开展警示教育活动总结
2015/05/09 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技