Как разбить эту строку:
56A19E6D77828
в такой формат:
56A1 9E6D 7782 8
Есть ли встроенные функции PHP, созданные для этого?
Ты можешь использовать str_split ()
$card = "56A19E6D77828";
echo join(" ", str_split($card, 4));
Выходы:
56A1 9E6D 7782 8
Для вашего примера ввода эта задача может быть выполнена с одним вызовом функции а также без создания временного массива.
$string = '56A19E6D77828';
var_export(preg_replace('~.{4}\K~', ' ', $string)); // '56A1 9E6D 7782 8'
Если вам нужно быть осторожным, чтобы не добавить дополнительный завершающий пробел, когда длина строки в четыре раза, просто убедитесь, что вы не достигли конца привязки строки.
$string = '56A19E6D77828333';
var_export(preg_replace('~.{4}\K(?!$)~', ' ', $string)); // '56A1 9E6D 7782 8333'
Шаблон прост:
.{4}
)\K
)(?!$)
Никаких взрывов строк или массивов, просто прямое манипулирование строками.