$k = 10;
var_dump($k , $k[0] , $k[1]);
int 10, null, null
$k = (string)10;
var_dump($k , $k[0] , $k[1]);
string '10', string '1', string '0'
Символы в строках можно использовать и модифицировать, определив их смещение относительно начала строки, начиная с нуля, в квадратных скобках после строки, например, $str[42]. Думайте о строке для этой цели, как о массиве символов.
Строки в PHP внутренне представляют из себя массивы байт. Как результат, доступ или изменение строки по смещению небезопасно с точки зрения многобайтной кодировки, и должно выполняться только со строками в однобайтных кодировках, таких как, например, ISO-8859-1.
Я после эти значения подставляю в массив, на места ключей, а соответственно php сам их переводит в int.