0

这段代码:

$arr1 = array();

for ($i=0; $i<10; $i++)
{
  $arr1[] = array('A'=>rand(0,5), 'B'=>rand(0,4));
}

生成这样的数组:

[0] array('A'=>0,[B]=>4)
[1] array('A'=>1,[B]=>3)
[2] array('A'=>3,[B]=>1)
//etc.

我需要得到不同的结构,即:

$arr2 = array('A' => array(0,1,3),'B' => array(4,3,1));

以便以后我可以使用$arr2['A']. 如果数组的创建方式如第一个示例中所示,$arr1['A']则将无法正常工作。

我怎样才能$arr2使用 for 循环,如 for $arr1。希望我解释得足够清楚。

4

1 回答 1

3

尝试:

$arr2 = array(
  'A' => array(),
  'B' => array()
);

for ($i=0; $i<10; $i++)
{
  $arr2['A'][] = rand(0,5);
  $arr2['B'][] = rand(0,4);
}

如果要将现有转换$arr1$arr2,请尝试:

$arr2 = array(
  'A' => array(),
  'B' => array()
);

foreach ( $arr1 as $value )
{
  $arr2['A'][] = $value['A'];
  $arr2['B'][] = $value['B'];
}
于 2012-09-12T10:47:29.940 回答