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&&mysql)二
Oct 09 PHP
PHP个人网站架设连环讲(四)
Oct 09 PHP
php include和require的区别深入解析
Jun 17 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
PHP进程同步代码实例
Feb 12 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
js实现简单点赞操作
2020/03/17 Javascript
Django内容增加富文本功能的实例
2017/10/17 Python
python获取代码运行时间的实例代码
2018/06/11 Python
python读取文本中的坐标方法
2018/10/14 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
10张动图学会python循环与递归问题
2021/02/06 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
小学教师师德演讲稿
2014/05/06 职场文书
教师学期个人总结
2015/02/11 职场文书
初中毕业生自我评价
2015/03/02 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
初中化学教学反思
2016/02/22 职场文书
社区结对共建协议书
2016/03/23 职场文书
MySQL快速插入一亿测试数据
2021/06/23 MySQL
详解python的异常捕获
2022/03/03 Python
MySQL慢查询优化解决问题
2022/03/17 MySQL