您的位置:首页 > 编程语言 > PHP开发

php数组纵向转横向

2015-06-17 18:19 921 查看
大牛的方法http://bbs.csdn.net/topics/390848153?page=1#post-397891735

[php] view
plaincopy

$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] view
plaincopy

//a1

array(

6=>array('黑xx', 'XXL'),

7=>array('黑xx', 'XL'),

8=>array('灰', 'XL'),

);

//a2

array(

6=>array(5, 42),

7=>array(5, 40),

8=>array(8, 40),

);

//结果:

array(

0=>array(5=>'黑xx', 8=>'灰'),

1=>array(42=>'XXL', 40=>'XL'),

);

//笨方法实现

//合并a1,a2 = a3

$a3 = array(

6=>array(5=>'黑xx', 42=>'XXL'),

7=>array(5=>'黑xx', 40=>'XL'),

8=>array(8=>'灰', 40=>'XL'),

);

//键名初始从0递增

$a3_new = array();

foreach($a3 as $v)

{

$a3_new[] = array_merge($v);

}

//x长度

$x = count($a3_new[0]);

//结果数组

$ary = array();

//因为是合并纵(y)列,所以数组长度=x长度(2列)

for($i=0; $i<$x; $i++)

{

$x_list = array();//y列所有值

//遍历y列

foreach($a3_new as $v)

{

$x_list[] = $v[$i];

}

$ary[] = $x_list;

}

print_r($ary);

exit;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: