【问题标题】:array merge return keys数组合并返回键
【发布时间】:2021-12-07 23:52:52
【问题描述】:

我有一个数组:

Array
(
    [0] => Array
        (
            [aaa] => 111
        )

    [1] => Array
        (
            [bbb] => 222
        )

    [2] => Array
        (
            [bbb] => 333
        )

)

我想得到:

Array
(      
[aaa] => 111
[bbb] => 333
)

我的代码。这是一个很好的功能吗? :

function myfunction($num)
{
  return $x[array_keys($num)] = array_values($num);
}
$a = array_map("myfunction",$a);

有可能吗?要使用哪些功能?

【问题讨论】:

  • 试试$a = array_merge(...$a);

标签: php arrays merge


【解决方案1】:
$finalArray = []    
foreach ($topArray as $array) {
  foreach ($array as $key => $value) {
      $finalArray[$key] = $value;
  }
}

【讨论】:

  • 是这样做的,但我很好奇有没有这样的功能
  • 您可以尝试其他用户之前提到的 array_merge,但 ... 扩展运算符不适用于旧 php 版本。但是对于一个简单的二维数组来说,一个简单的循环就足够了。
【解决方案2】:

在 php v5.6 之后,您可以执行以下操作 $b = array_merge(...$a); 在现代浏览器的 JavaScript 中称为 flatMap (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap)

完整场景:

<?php
    
    $a = array(
        array('aaa' => 111), 
        array('bbb' => 222),
        array('bbb' => 333),
    );
    $b = array_merge(...$a);
    var_dump($b);

?>

http://sandbox.onlinephpfunctions.com/code/390ed3354e39a8db1d59abfb79dbbd59aec7f92c

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 2023-04-09
    • 2012-01-15
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2014-11-11
    相关资源
    最近更新 更多