$a /* array (size=1)
62 =>
array (size=1)
0 => int 11 //
*/
$b /* array (size=2)
49 =>
array (size=3)
0 => int 1
1 => int 2
2 => int 3
62 =>
array (size=1)
0 => int 22 //
*/
ArrayHelper::merge($a, $b) /* возвращает array (size=3)
62 =>
array (size=1)
0 => int 11 //
49 =>
array (size=3)
0 => int 1
1 => int 2
2 => int 3
63 =>
array (size=1)
0 => int 22 //
*/
А нужен массив в виде:
($a, $b) /* array (size=2)
62 =>
array (size=2)
0 => int 11 //
1 => int 22 //
49 =>
array (size=3)
0 => int 1
1 => int 2
2 => int 3
*/
При использовании функций php ( array_merge_recursive, array_merge) индексы перезаписываются на 1, 2, 3
из документации по array_merge_recursive:
Если входные массивы имеют одинаковые строковые ключи, то значения этих ключей сливаются в массив, и это делается рекурсивно, так что если одно из значений является массивом, то функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, каждое последующее значение не заменит исходное значение, а будет добавлено в конец массива.