php陣列縱向轉橫向
阿新 • • 發佈:2019-02-04
- $a = array(
- 6=>array(5=>'黑xx', 42=>'XXL'),
- 7=>array(5=>'黑xx', 40=>'XL'),
- 8=>array(8=>'灰', 40=>'XL'),
- );
- foreach($aas$r) {
- $i = 0;
- while(list($k, $v) = each($r)) $b[$i++][$k] = $v;
- }
- print_r($b);
笨方法,但實現效果了,期待好的方法
- //a1
- array(
-
6=>array
- 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($a3as$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_newas$v)
- {
- $x_list[] = $v[$i];
- }
- $ary[] = $x_list;
- }
- print_r($ary);
- exit;