合并多维数组中的2个值

问题描述 投票:-1回答:1

在之前已经将数据导出后,有一部分我需要再次重建merge.period在[category-X]中的索引[1]与它的值[2]应该被合并并定位在索引[1]中,最后,每个类别中的其余索引应该向上移动一步,否则索引[2]将被留空。

最后,每个类别中的其余索引应该向上移动一步,否则索引[2]将是空白的。


我的代码。

$array = [
  'category-1' => [
    'data_first',
    'period',
    '0',
    'data_last',
  ],
  'category-2' => [
    'data_first',
    'period',
    '2',
    'data_last',
  ]
];

print_r($array);

结果

Array
(
    [category-1] => Array
        (
            [0] => data_first
            [1] => period
            [2] => 0 // To be merged with period in index [1]
            [3] => data_last
        )

    [category-2] => Array
        (
            [0] => data_first
            [1] => period
            [2] => 2 // To be merged with period in index [1]
            [3] => data_last
        )

)

想要的结果

 Array
(
    [category-1] => Array
        (
            [0] => data_first
            [1] => period0
            [2] => data_last
        )

    [category-2] => Array
        (
            [0] => data_first
            [1] => period2
            [2] => data_last
        )

)
php arrays multidimensional-array merge php-7.3
1个回答
0
投票

提取数组的键值。将两个值(周期,0)连起来,并用该结果覆盖索引[1]。最后使用unset删除索引[2]。

$keys = array_keys($array);

for ($i=0; $i < count($keys) ; $i++) {

  $array[ $keys[$i] ][1] =
    $array[ $keys[$i] ][1] . $array[ $keys[$i] ][2];

    unset($array[ $keys[$i] ][2]);
}

print_r($array);
© www.soinside.com 2019 - 2024. All rights reserved.