当前位置: 代码迷 >> PHP >> 数组纵向转横向怎么实现
  详细解决方案

数组纵向转横向怎么实现

热度:306   发布时间:2016-04-28 18:45:45.0
数组纵向转横向如何实现啊

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'),
);


数组纵向转横向并过滤重复值 是如何实现啊



------解决方案--------------------

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



Array
(
    [0] => Array
        (
            [5] => 黑xx
            [8] => 灰
        )

    [1] => Array
        (
            [42] => XXL
            [40] => XL
        )

)

------解决方案--------------------
最简单的写法
$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
        )

)

  相关解决方案