【问题标题】:Merge 2 values in multidimensional array合并多维数组中的 2 个值
【发布时间】:2020-09-15 14:05:11
【问题描述】:

在之前分解数据之后,我需要再次重建/合并一部分。 [category-X] 索引 [1] 中的句点及其值 [2] 应合并并定位在索引 [1] 中。

最后,每个类别中的其余索引应上移一级,否则索引 [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
        )

)

【问题讨论】:

  • @Kevin,我一定会尝试的。
  • @CBroe 明白了,我会更新问题。
  • 这里是一个指南,使用 foreach,使用引用 &,用连接的索引 1 和 2 覆盖第一个索引,取消设置索引 2 并使用 array_values 重新索引子整个数组,就是这样

标签: php arrays multidimensional-array merge php-7.3


【解决方案1】:

提取数组的键值。连接两个值(句点,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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2021-07-06
    相关资源
    最近更新 更多