php实现数组纵向转横向并过滤重复值的方法分析

这篇文章主要介绍了php实现数组纵向转横向并过滤重复值的方法,结合具体实例形式对比分析了php针对数组遍历、转换与去重相关操作技巧,需要的朋友可以参考下

本文实例讲述了php实现数组纵向转横向并过滤重复值的方法。分享给大家供大家参考,具体如下:

一、问题

有数组:

array(    6=>array(5=>'黑xx', 42=>'XXL'),    7=>array(5=>'黑xx', 40=>'XL'),    8=>array(8=>'灰',  40=>'XL'),  );

立即学习PHP免费学习笔记(深入)”;

要求转换成如下结果(数组纵向转横向并过滤重复值):

array(    0=>array(5=>'黑xx', 8=>'灰'),    1=>array(42=>'XXL', 40=>'XL'),  );

立即学习PHP免费学习笔记(深入)”;

二、解决方法

方法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);

立即学习PHP免费学习笔记(深入)”;

方法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);

立即学习PHP免费学习笔记(深入)”;

最简单的写法:

$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);

立即学习PHP免费学习笔记(深入)”;

最终运行结果均为:

Array  (    [0] => Array      (        [5] => 黑xx        [8] => 灰      )    [1] => Array      (        [42] => XXL        [40] => XL      )  )

立即学习PHP免费学习笔记(深入)”;

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享