PHP строка, разделенная - PullRequest
       6

PHP строка, разделенная

0 голосов
/ 01 октября 2018
$code = "IH9320YB39391Y2819";

Пожалуйста, помогите, как разбить строку на массив по алфавиту?и результат JSON, как это:

[
{"code":"IH320"},
{"code":"YBS3391"},
{"code":"Y2819"}
]

Спасибо

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете использовать 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"}]
...