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即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
php备份数据库类分享
Apr 14 PHP
php mysql 封装类实例代码
Sep 18 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
ThinkPHP实现分页功能
Apr 28 PHP
php删除数组指定元素实现代码
May 03 PHP
详细解读php的命名空间(一)
Feb 21 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
Jun 22 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php中session与cookie的比较
2015/01/27 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
微信小程序联网请求的轮播图
2017/07/07 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python基础知识点 初识Python.md
2019/05/14 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
快速了解Python开发环境Spyder
2020/06/29 Python
如何用Django处理gzip数据流
2021/01/29 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
英国办公用品商店:Office Outlet
2018/04/04 全球购物
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
初任培训自我鉴定
2013/10/07 职场文书
大专会计自我鉴定
2014/02/06 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书