hola ..
mira por empezar .. tengo entendido que la funcion array_merge sirve para combinar dos matrices, y esta sucediendo de que el segundo parametro que le estas pasando no es una matriz
http://ar2.php.net/manual/es/function.array-merge.php
por lo tanto, me da la impresion de que puede ser ese el problema.
Código PHP:
$name = str_replace('character-name = ', '', $file[$name]);
$town = str_replace('character-location = ', '', $file[$town]);
$lvl = str_replace('character-LEVEL = ', '', $file[$lvl]);
$exp = str_replace('character-EXP = ', '', $file[$exp]);
$name_arr = array_merge($name_arr, $name);
$town_arr = array_merge($town_arr, $town);
$lvl_arr = array_merge($lvl_arr, $lvl);
$exp_arr = array_merge($exp_arr, $exp);
y por lo que veo las variables $name, $town, $lvl y $exp solamente tienen un valor, si lo que queres hacer es ir rellenando la matriz, me parece que lo vas a tener que hacer de otra forma ...
se me ocurre que podrias usar la variable $i que usas en el for, para ir rellendando la matriz de la siguiente forma ..
Código PHP:
$name_arr[$i] = $name;
$town_arr[$i] = $town;
$lvl_arr[$i] = $lvl;
$exp_arr[$i] = $exp;
esto ultimo reemplazalo por la parte donde haces la asignacion ... a mi no me funciona porque no tengo datos, pero por lo menos no me da error ..
salud