Вы можете использовать preg_split
, чтобы разбить вашу строку.Кажется, вы хотите разделить все комбинации символов и чисел, поэтому мы используем регулярное выражение, которое их фиксирует: /([A-Z]+[0-9]+)/
.Затем мы используем флаги PREG_SPLIT_NO_EMPTY
и PREG_SPLIT_DELIM_CAPTURE
для захвата разделителей (которые на самом деле являются строками, которые вам нужны) и удаляем все пустые записи из вывода:
$code = "IH9320YB39391Y2819";
$codes = preg_split('/([A-Z]+[0-9]+)/', $code, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($codes);
Вывод:
Array
(
[0] => IH9320
[1] => YB39391
[2] => Y2819
)
Если вам действительно нужен массив объектов, вы можете постобработать массив $codes
следующим образом:
$objs = array();
foreach ($codes as $code) $objs[] = (object)array('code' => $code);
print_r(json_encode($objs));
Вывод:
[{"code":"IH9320"},{"code":"YB39391"},{"code":"Y2819"}]