【问题标题】:How can you combine two arrays?如何组合两个数组?
【发布时间】:2010-11-20 02:25:02
【问题描述】:

它们被简化如下,足以解决这个问题。本题基于this answer

1

[a][b][]

2

[a][c]

其中两个数组都有一个公共子数组 [a]。

我想要这个

[a][c][b][]

我没有成功运行以下命令

array1[a] + array2[a]

【问题讨论】:

  • 如果用php表示法显示前后数组可能会更清楚一些。

标签: php arrays merge


【解决方案1】:
foreach($array1 as $a => $c)
{
    $end_array[$c] = $array2[$a];
}

// For every [a]
foreach($array1 as $a => $c)
{
    // Get the [b]
    $b = $array2[$a];

    // Add it to [a][c]
    $end_array[$a][$c] = $b;

    // Making it $end_array[$a][$c][$b] = array(....);
}

【讨论】:

    【解决方案2】:

    $array1 = array_merge($array1, $array2);

    【讨论】:

    • 这省略了我不想要的 $b 列,因为它们是问题的标题。
    【解决方案3】:

    好的,我明白你在说什么。 (对于其他人,请参阅他发布的链接:http://dpaste.com/81464/

    var $output = array();
    
    foreach ($array1 as $index => $a1) {
        $output[$index] = $a1;
        $output[$index]['title'] = $array2[$index]['title'];
    }
    

    【讨论】:

      【解决方案4】:

      PHP 为您提供了解决这个常见问题的解决方案:

      $a = array_merge($b, $c);
      

      使用此解决方案,您将获取 $b 中的所有元素并将它们与 $c 合并。但如果您使用关联数组,您应该注意到您将用 $c 中的值替换 $b 中的值。

      例如:

      <?php
      
      $a = array(
          'ka' => 1,
          'kb' => 1,
      );
      
      $b = array(
          'kb' => 2,
          'kc' => 2,
      );
      
      print_r(array_merge($a, $b));
      
      
      ?>
      

      这段代码的结果是这样的:

      Array
      (
          [ka] => 1
          [kb] => 2
          [kc] => 2
      )
      

      【讨论】:

      • 这不起作用。它省略了标题。 - 如何确定函数合并的列?
      【解决方案5】:
      for($i = 0; $i < sizeof($array); $i++)
      {
           $mergedarray[a][b] = $a[a][b];
           $mergedarray[a][c] = $b[a][c];
      }
      

      据我所知,这是您想要的,这样两个子键都具有相同的根键。

      【讨论】:

        【解决方案6】:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-02
          • 2019-06-13
          • 1970-01-01
          • 2023-03-14
          • 1970-01-01
          相关资源
          最近更新 更多