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 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
简单采集了yahoo的一些数据
Feb 14 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
php学习之简单计算器实现代码
Jun 09 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP中类属性与类静态变量的访问方法示例
Jul 13 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
php源码的使用方法讲解
Sep 26 PHP
解决Laravel5.5下的toArray问题
Oct 15 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
NOT NULL 和NULL
2007/01/15 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
有关JS中的0,null,undefined,[],{},'''''''',false之间的关系
2017/02/14 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
python如何爬取个性签名
2018/06/19 Python
Atom的python插件和常用插件说明
2018/07/08 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
pycharm实现猜数游戏
2020/12/07 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
SQL Server面试题
2016/10/17 面试题
电大本科自我鉴定
2014/02/05 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
药店促销活动策划方案
2014/08/24 职场文书
普宁寺导游词
2015/02/04 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL