【问题标题】:I want to merge these two arrays [closed]我想合并这两个数组[关闭]
【发布时间】:2016-05-31 22:55:38
【问题描述】:

我需要一些帮助来合并这两个数组。

$array = array(
  'a' => array('b', 'd', 'c'), 
  'b' => array('a', 'e', 'f')
);

我希望我的输出是这样的(合并上面的两个嵌套数组,然后排序)

['a', 'b', 'c', 'd', 'e', 'f']

到目前为止我尝试过的是这个

foreach($array as $element=>$inner_element)
{
  $length = count($inner_element);
  for($x = 0; $x < $length; $x++)
  {
    echo $inner_element[$x];
    echo "<br>";
  }
}

这显示了结构的样子,但我不知道如何进行。

【问题讨论】:

  • 预期输出应该是什么样子?
  • 到目前为止你尝试了什么?并发布您的预期输出
  • 当您向开发人员提出问题时,开发人员往往(应该)对您如何表达事物很挑剔,让我来指出那里有三个数组(是的,我愿意完全理解您所指的数组,只需告诉我们您尝试过)
  • php merge two arrays的可能重复

标签: php


【解决方案1】:
$result_array = array_merge($array['a'],$array['b']);

我希望你想合并主 $array 变量中的数组

【讨论】:

    【解决方案2】:

    由于这个问题看起来很懒(实际上在这里创建问题比在谷歌中输入相同的内容更难),让我为您提供您不会轻易找到的答案。

    $array = array(
      'a' => array('b', 'c', 'd'),
      'b' => array('a', 'e', 'f')
    );
    $result = call_user_func_array('array_merge', $array);
    

    此版本允许您合并 $array 中的任意数量的数组。


    这个问题已经扩展,额外希望对输出数组进行排序。只需在上面的代码中添加以下内容:

    sort($result);
    

    【讨论】:

    • 从代码中删除 array_values 函数,这会在此处产生开销
    • 你是对的,删除它
    • 好一个 +1 @RogierSpieker
    • 你可以使用 RecursiveIteratorIterator array('b', 'd', 'c'), 'b' => array('a' , 'e', 'f') ); $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($a)); $out = 数组(); foreach($iterator as $value) { $out[] = $value; } echo '
      '.print_r($out,true).'
      '; /*输出:数组([0] => b [1] => d [2] => c [3] => a [4] => e [5] => f)*/ ?>
    • 在这里我想我的答案对于手头的问题来说太复杂了;-)
    【解决方案3】:

    合并两个数组的最快方法:

    <?php $newArray = $array1 + $array2; ?>
    

    惊奇

    【讨论】:

      猜你喜欢
      • 2019-06-14
      • 2022-01-13
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多