php数组纵向转横向

大牛的方法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;





### 回答1: 使用 numpy 库的 concatenate() 函数可以实现 ndarray 数组纵向拼接。示例代码如下: ``` import numpy as np a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) c = np.concatenate((a, b), axis=0) ``` 这样就将 a 和 b 数组纵向拼接在一起,得到数组 c。 ### 回答2: 数组纵向拼接是指将多个一维的数组按照纵向的方式进行拼接,生成一个更大的二维数组。 在Python的NumPy库中,可以使用函数`np.vstack()`来进行数组纵向拼接。这个函数接受一个可迭代的对象,包括一维数组、二维数组或其他符合规则的对象,在纵向方向将它们拼接成一个更大的二维数组。 具体的操作是,将待拼接的数组放入一个列表中作为参数传入`np.vstack()`函数,函数会将它们按照垂直方向依次拼接起来。这样做的好处是,不同维度的数组之间可以通过这种方式进行拼接和合并。 例如,有两个一维数组arr1和arr2,分别为[1, 2, 3]和[4, 5, 6],我们可以使用`np.vstack()`函数将它们纵向拼接成一个二维数组: ``` python import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) result = np.vstack((arr1, arr2)) print(result) ``` 输出结果为: ``` [[1 2 3] [4 5 6]] ``` 可以看到,arr1和arr2按照纵向的方式拼接在一起,生成了一个两行三列的二维数组。 总结来说,纵向拼接是指将多个一维数组纵向方向上按顺序拼接起来形成一个更大的二维数组,这样做可以方便进行不同维度数组之间的合并和操作。 ### 回答3: ndarray是NumPy库中的一个多维数组对象。在NumPy中,可以使用concatenate函数来进行数组纵向拼接。 纵向拼接是指将两个或多个数组纵向的方向上合并为一个数组。也就是将它们的行数增加,并保持列数不变。 例如,我们有两个数组arr1和arr2,它们的形状分别为(2,3)和(2,3): arr1 = [[1, 2, 3], [4, 5, 6]] arr2 = [[7, 8, 9], [10, 11, 12]] 使用concatenate函数可以将这两个数组纵向拼接,并得到一个新的数组arr3: arr3 = np.concatenate((arr1, arr2), axis=0) arr3的形状为(4,3),即有4行和3列: arr3 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 在concatenate函数中,我们需要传入一个元组作为参数,其中包含要拼接的数组。另外,需要指定axis参数为0,表示在纵向的方向上进行拼接。 需要注意的是,要进行纵向拼接的数组的列数必须相同,否则会抛出异常。 总结起来,ndarray数组纵向拼接可以使用NumPy库中的concatenate函数实现,传入要拼接的数组和指定axis参数为0,即可得到一个新的数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值