首页 > 解决方案 > 将一个数组合并到多个数组

问题描述

我有以下内容:

$staticArray = ['group_1', 'group_2'];

foreach ($staticArray as $name){
    $names[] = $name;
}

$staticArray2 = ['one', 'two'];

$i = 0;
foreach ($staticArray2 as $name){

    $item['group']['name']   = $names;
    $item['group']['user_1']   = 'Peter';
    $item['group']['user_2'] = 'Jack';

    $groups[] = $item;

    $i++;
}

上面的代码输出是这样的:

[ {
group: {
    name: [
       "group_1",
       "group_2",
       "group_1",
       "group_2"
   ],
    user_1: "Peter",
    user_2: "Jack"
   }
},

{
group: {
   name: [
      "group_1",
      "group_2",
      "group_1",
      "group_2"
   ],
   user_1: "Peter",
   user_2: "Jack"
  }
} ]

我怎样才能编辑第一个代码看起来像这样:

{
   group: {
      name: "group_1", //group 1
      user_1: "Peter",
      user_2: "Jack"
   },
   group: {
      name: "group_2", //group 2
      user_1: "Peter",
      user_2: "Jack"
   }
}

$staticArray$staticArray2是两个静态变量,所以这两项不能编辑。

如果你不明白我的意思。读这个:

我有两个数组:

$legues = [ 'Laliga', 'Bundesliga', '...' ];

$teams  = [ 'FC Barcelona', 'RCD Mallorca', 'UD Levante', 'CF Valencia', 'FC Salzburg', 'WSG Tirol' ];

第一个联赛是“Laliga”,这个联赛有 4 支球队:FC Barcelona、RCD Mallorca、UD Levante 和 CF Valencia。

第二个联赛是“德甲”,这个联赛有 2 支球队:FC Salzburg 和 WSG Tirol。

现在我想把这支球队加入联盟(就像我最后的输出代码一样)。

标签: phparraysarray-mergearray-combine

解决方案


代替

$item['group']['name']   = $names;

$item['group']['name']   = $names[$i];

例子

注意: 这些静态数组的长度应该相同。

这一举动

$staticArray = ['group_1', 'group_2'];

foreach ($staticArray as $name){
    $names[] = $name;
}

没有意义。你的$names数组等于$staticArray。因此,您可以使用$staticArray而不是$names数组。

如果您需要定义从$staticArray2第一个到第一个(4,2 等)的多个值,则需要定义支持数组,例如[4,2]并创建特定循环以在$groups.

演示

这里$sup数组的长度应该与$legues.


推荐阅读