Объединить 2 значения в многомерный массив - PullRequest
0 голосов
/ 28 мая 2020

После того, как ранее были разбиты данные, есть часть, которую мне нужно перестроить / объединить снова. период в [category-X] index [1] с его значением [2] должен быть объединен и помещен в index [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
        )

)

1 Ответ

0 голосов
/ 28 мая 2020

Извлечь ключевые значения массива. Объедините оба значения (период, 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);
...