这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 php 实现数组纵向转横向并过滤重复值的方法, 结合具体实例形式对比分析了 php 针对数组遍历、转换与去重相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0807/339674.html