大牛的方法http://bbs.csdn.net/topics/390848153?page=1#post-397891735
$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);
笨方法,但实现效果了,期待好的方法
//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;