在php中合并数组[duplicate]

dphi5xsq  于 2023-01-24  发布在  PHP
关注(0)|答案(2)|浏览(127)
    • 此问题在此处已有答案**:

Add 2 values to 1 key in a PHP array(7个答案)
4天前关闭。

    • 我有数组**
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

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

7gcisfzg

7gcisfzg1#

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

txu3uszq

txu3uszq2#

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

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

请尝试:http://codepad.org/1h7mKbqe

相关问题