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 相关文章推荐
dedecms模版制作使用方法
Apr 03 PHP
相对路径转化成绝对路径
Apr 10 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
php生成随机颜色的方法
Nov 13 PHP
linux中cd命令使用详解
Jan 08 PHP
php中静态类与静态变量用法的区别分析
Jan 15 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP defined()函数的使用图文详解
Jul 20 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 项目的方法
2007/01/02 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
php实现微信扫码支付
2017/03/26 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
Python实现截屏的函数
2015/07/26 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python爬虫神器Pyppeteer入门及使用
2019/07/13 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
大学校园生活自我鉴定
2014/01/13 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
委托书的写法
2014/09/16 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年评职称工作总结
2014/11/20 职场文书
党内外群众意见范文
2015/06/02 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
Pytorch 实现变量类型转换
2021/05/17 Python
python基础之类方法和静态方法
2021/10/24 Python
vue实现Toast组件轻提示
2022/04/10 Vue.js
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers