将一个数组合并为多个数组

Combine One array to several array

我有以下内容:

$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。

第二联赛是 "Bundesliga",这个联赛有 2 支球队:FC Salzburg 和 WSG Tirol。

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

替换

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

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

Example

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

这一招

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

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

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

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

Demo

此处$sup数组的长度应与$legues相同。