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 09 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP读取XML值的代码(推荐)
Jan 01 PHP
优化php效率,提高php性能的一些方法
Mar 24 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
PHP Global定义全局变量使用说明
Aug 15 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
php提高脚本性能的4个技巧
Aug 18 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
python3爬虫之设计签名小程序
2018/06/19 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
Django REST 异常处理详解
2020/07/15 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
公司中秋节活动方案
2014/02/12 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
党员个人公开承诺书
2014/08/29 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
python随机打印成绩排名表
2021/06/23 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
HTML常用标签超详细整理
2022/03/19 HTML / CSS
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript