-3

我有数组

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

谢谢大家。对不起,我的英语很差:(

4

2 回答 2

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)
}

现场样品

正如您所看到的,每个循环上的键都被覆盖,因为它们是相同的,值也是相同的,我认为您可以使用上述函数让一个一级数组从中删除键$new_array

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

现场样品

于 2013-06-01T09:49:45.497 回答
1

这可以满足您的要求(不保留子键,因为您不能有多个元素具有相同的键):

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

在这里试试:http: //codepad.org/1h7mKbqe

于 2013-06-01T09:42:59.273 回答