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基本安全
Sep 04 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
php验证身份证号码正确性的函数
Jul 20 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
Jul 31 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 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
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
基于Vue实现微信小程序的图文编辑器
2018/07/25 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python中while循环语句用法简单实例
2015/05/07 Python
python实现kNN算法
2017/12/20 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
更新修改后的Python模块方法
2019/03/03 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
使用pandas读取文件的实现
2019/07/31 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
Python实现上下文管理器的方法
2020/08/07 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
公司表扬稿范文
2015/05/05 职场文书
学校运动会简讯
2015/07/20 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
python实现进度条的多种实现
2021/04/29 Python
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
2021/05/06 MySQL