在php中组合数组

时间:2013-06-01 09:36:56

标签: php arrays

我有阵列

array
  0 => 
    array
      2 => int 50000
  1 => 
    array
      2 => int 30000
  2 => 
    array
      1 => int 25000
  3 => 
    array
      1 => int 20000
  4 => 
    array
      1 => int 10000

我需要创建数组,结果是:

array
  2 => int 50000
  2 => int 30000
  1 => int 25000
  1 => int 20000
  1 => int 10000

感谢所有人。 对不起,我的英语非常糟糕:(

2 个答案:

答案 0 :(得分:2)

PHP不允许数组具有相同的键。这将显示php将如何处理一个foreach循环,它将数组重写为具有所需键和值的新数组

$array = array(
  0 => 
    array(
      2 => 50000),
  1 => 
    array(
      2 => 30000),
  2 => 
    array(
      1 => 25000),
  3 => 
    array(
      1 => 20000),
  4 => 
    array(
      1 => 10000)
);

$new_array = array();
foreach($array as $data)
{
    foreach($data as $key => $val)
    {
        $new_array[$key] = $val;
    }
}
var_dump($new_array);

这将输出

array(2) {
  [2]=>
  int(30000)
  [1]=>
  int(10000)
}

Live Sample

正如你所看到的,每个循环都会覆盖键,因为它们是相同的,值也是如此,我认为你可以使用上面的函数来从$new_array

中删除键的一级数组
foreach($data as $key => $val)
{
    $new_array[] = $val;
}

Live Sample

答案 1 :(得分:1)

这样做你想要的(不保留子键,因为你不能有多个具有相同键的元素):

$flat_array = array_map('current', $array);

在此尝试:http://codepad.org/1h7mKbqe