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桌面中心(一) 创建数据库
Mar 11 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
分享10段PHP常用代码
Nov 11 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 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实现弹出消息提示框的两种方法
2013/12/17 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
javascript中对对层的控制
2006/12/29 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
javascript数组的使用
2013/03/28 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
八大排序算法的Python实现
2021/01/28 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
求职者简历中的自我评价
2013/10/20 职场文书
教师实习的自我鉴定
2013/10/26 职场文书
食品销售计划书
2014/04/26 职场文书
承诺书样本
2014/08/30 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
中学教师个人总结
2015/02/10 职场文书
看上去很美观后感
2015/06/10 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL