Добрый вечер! Очень нуждаюсь в помощи с следующей задачей. Есть своего рода рассылка товаров, общее количество символов в которой будет привешать лимит на размер сообщения. Соответственно нужно разбить рассылку на несколько частей. Но тут нельзя разбить по каждому \n. Поскольку значения в строке имеют определнный порядок и нарушать этот порядок нельзя.
Например, ниже есть массив строк, один элемент массива = 1 сообщение. Элемент массива с условными Iphone 7 превышает лимит на размер сообщения. Самым простым решениенм, было бы
preg_split("\n", $preorder[$k]
Просто разбить строку по символу \n и получить массив не вариант, потому, что я могу получить, ситуацию, когда в одном элементе массива будет 40 строк, а вдругом 3 или вообще 1 строка. А отправлять сообщение в котором одна строка, так себе идея.
Суть в том, что массив имеет следующий вид
$preorder[] = "
iPhone 7/7 plus\n
\n
7 32Gb Jet B 1778 AA/A - 1 550\n
7 32Gb Jet B 1778 HN/A - 50\n
7 32Gb Jet B 1778 - 1 500\n
7 32Gb Jet B 1778 LE/A - 1 550\n
7 32Gb Jet B 1778 AH/A - 1 600\n
7 32Gb Jet B 1778 VC/A - 1 550\n
7 32Gb Jet B 1778 MY/A - 1 550\n
7 32Gb Jet B 1778 2B/A - 1 550\n
\n
7 128Gb Black 1778 2B/A - 1 550\n
7 128Gb Black 1778 VC/A - 1 550\n
7 128Gb Black 1778 HN/A - 50\n
7 128Gb Jet B 1778 - 1 500\n
7 128GB Jet B 1778 AH/A - 1 600\n
7 128Gb Jet B 1778 LE/A - 1 550\n
7 128Gb Jet B 1778 MY/A - 4 950\n
7 128Gb Jet B 1778 HN/A - 50\n
\n
7 256Gb Black 1778 2B/A - 1 550\n
\n
7 128Gb Jet B 1778 VC/A - 1 550\n
\n
7 256Gb Black 1778 AH/A - 1 600\n
7 256Gb Black 1778 AA/A - 1 550\n
7 256Gb Black 1778 HN/A - 50\n
7 256Gb Red 1778 MY/A - 1 550\n
7 256Gb Jet B 1778 AA/A - 1 550\n
7 256Gb Jet B 1778 LE/A - 1 550\n
7 256Gb Jet B 1778 VC/A - 1 550\n
\n
7 Plus 32Gb Black 1784 2B/A - 1 800\n
\n
7 256Gb Jet B 1778 MY/A - 4 950\n
7 256Gb Jet Black 1778 - 1 500\n
7 256Gb Jet B 1778 AH/A - 1 600\n
7 256Gb Jet B 1778 HN/A - 50\n
\n
7 Plus 32Gb Silver 1784 2B/A - 5 200\n
7 Plus 32Gb Black 1784 LE/A - 1 700\n
7 Plus 32Gb Black 1784 HN/A - 50\n
7 Plus 32Gb Black 1784 - 1 700\n
7 Plus 32Gb Gold 1784 HN/A - 50\n
7 Plus 32Gb Gold 1784 LE/A - 1 700\n
7 Plus 32Gb Gold 1784 MY/A - 1 800\n
7 Plus 32Gb Rose 1784 MY/A - 5 200\n
\n
7 Plus 128Gb Black 1784 2B/A - 5 200\n
\n
7 Plus 32Gb Rose 1784 - 1 700\n
7 Plus 32Gb Rose 1784 LE/A - 5 100\n
7 Plus 32Gb Rose 1784 VC/A - 5 050\n
7 Plus 32Gb Rose 1784 HN/A - 50\n
7 Plus 32Gb Rose 1784 AA/A - 1 600\n
7 Plus 32Gb Red 1784 HN/A - 50\n
7 Plus 32Gb Rose 1784 AH/A - 1 800\n
\n
7 Plus 128Gb Silver 1784 2B/A - 1 800\n
\n
7 Plus 32Gb Jet B 1784 HN/A - 50\n
7 Plus 32Gb Jet B 1784 VC/A - 1 600\n
7 Plus 32Gb Jet B 1784 MY/A - 1 800\n
7 Plus 32Gb Jet B 1784 LE/A - 1 700\n
\n
7 Plus 128Gb Gold 1784 2B/A - 5 200\n
\n
7 PLus 32Gb Jet B 1784 AH/A - 5 250\n
7 Plus 32Gb Jet B 1784 AA/A - 1 600\n
7 Plus 32Gb Jet B 1784 - 1 700\n
\n
7 Plus 128Gb Black 1784 HN/A - 50\n
7 Plus 128Gb Rose 1784 2B/A - 1 800\n
7 Plus 128Gb Black 1784 - 1 700\n
7 Plus 128Gb Gold 1784 MY/A - 1 800\n
7 Plus 128Gb Rose 1784 MY/A - 1 800\n
7 Plus 128Gb Rose 1784 AH/A - 1 800\n
7 Plus 128Gb Rose 1784 HN/A - 50\n
\n
7 Plus 256Gb Black 1784 2B/A - 1 800\n
\n
7 Plus 128Gb Rose 1784 LE/A - 1 700\n
7 Plus 128Gb Rose 1784 VC/A - 1 600\n
7 Plus 128Gb Rose 1784 AA/A - 1 600\n
7 Plus 128Gb Rose 1784 - 1 700\n
7 Plus 128Gb Red 1784 AH/A - 5 250\n
7 Plus 128Gb Red 1784 - 1 700\n
\n
7 Plus 256Gb Silver 1784 2B/A - 1 800\n
\n
7 Plus 128Gb Jet B 1784 VC/A - 1 600\n
7 Plus 128Gb Jet B 1784 MY/A - 1 800\n
7 Plus 128Gb Jet B 1784 AA/A - 5 050\n
\n
7 Plus 256Gb Gold 1784 2B/A - 1 800\n
\n
7 Plus 128Gb Jet B 1784 LE/A - 1 700\n
\n
7 Plus 256Gb Black 1784 AH/A - 5 250\n
7 Plus 256Gb Black 1784 VC/A - 1 600\n
7 Plus 256Gb Rose 1784 2B/A - 5 200\n
7 Plus 256Gb Black 1784 - 1 700\n
7 Plus 256Gb Black 1784 LE/A - 1 700\n
7 Plus 256Gb Jet B 1784 MY/A - 1 800\n
7 Plus 256Gb Jet B 1784 LE/A - 1 700\n
7 Plus 256Gb Jet B 1784 VC/A - 1 600\n
7 Plus 256Gb Jet B 1784 AH/A - 1 800\n
7 Plus 256Gb Jet B 1784 - 1 700\n
";
А нужно получить
$msg = [];
$msg[] = "
iPhone 7/7 plus\n
\n
7 32Gb Jet B 1778 AA/A - 1 550\n
7 32Gb Jet B 1778 HN/A - 50\n
7 32Gb Jet B 1778 - 1 500\n
7 32Gb Jet B 1778 LE/A - 1 550\n
7 32Gb Jet B 1778 AH/A - 1 600\n
7 32Gb Jet B 1778 VC/A - 1 550\n
7 32Gb Jet B 1778 MY/A - 1 550\n
7 32Gb Jet B 1778 2B/A - 1 550\n";
$msg[] ="
\n
7 128Gb Black 1778 2B/A - 1 550\n
7 128Gb Black 1778 VC/A - 1 550\n
7 128Gb Black 1778 HN/A - 50\n
7 128Gb Jet B 1778 - 1 500\n
7 128GB Jet B 1778 AH/A - 1 600\n
7 128Gb Jet B 1778 LE/A - 1 550\n
7 128Gb Jet B 1778 MY/A - 4 950\n
7 128Gb Jet B 1778 HN/A - 50\n";
$msg[] ="
\n
7 256Gb Black 1778 2B/A - 1 550\n
\n
7 128Gb Jet B 1778 VC/A - 1 550\n
\n
7 256Gb Black 1778 AH/A - 1 600\n
7 256Gb Black 1778 AA/A - 1 550\n
7 256Gb Black 1778 HN/A - 50\n
7 256Gb Red 1778 MY/A - 1 550\n
7 256Gb Jet B 1778 AA/A - 1 550\n
7 256Gb Jet B 1778 LE/A - 1 550\n
7 256Gb Jet B 1778 VC/A - 1 550\n";
$msg[] = "
\n
7 Plus 32Gb Black 1784 2B/A - 1 800\n
\n
7 256Gb Jet B 1778 MY/A - 4 950\n
7 256Gb Jet Black 1778 - 1 500\n
7 256Gb Jet B 1778 AH/A - 1 600\n
7 256Gb Jet B 1778 HN/A - 50\n
\n
7 Plus 32Gb Silver 1784 2B/A - 5 200\n
7 Plus 32Gb Black 1784 LE/A - 1 700\n
7 Plus 32Gb Black 1784 HN/A - 50\n
7 Plus 32Gb Black 1784 - 1 700\n
7 Plus 32Gb Gold 1784 HN/A - 50\n
7 Plus 32Gb Gold 1784 LE/A - 1 700\n
7 Plus 32Gb Gold 1784 MY/A - 1 800\n
7 Plus 32Gb Rose 1784 MY/A - 5 200\n
\n
7 Plus 128Gb Black 1784 2B/A - 5 200\n
\n
7 Plus 32Gb Rose 1784 - 1 700\n
7 Plus 32Gb Rose 1784 LE/A - 5 100\n
7 Plus 32Gb Rose 1784 VC/A - 5 050\n
7 Plus 32Gb Rose 1784 HN/A - 50\n";
Буду крайне признателен за помощь!