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 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
php将时间差转换为字符串提示
Sep 07 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
初识PHP中的Swoole
Apr 05 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 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
mysql 性能的检查和优化方法
2009/06/21 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
Python中的模块和包概念介绍
2015/04/13 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
python几种常用功能实现代码实例
2019/12/25 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
C语言变量的命名规则都有哪些
2013/12/27 面试题
无偿献血倡议书
2014/04/14 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
公司仓库管理制度
2015/08/04 职场文书