#php #arrays #associative-array
Вопрос:
У меня есть данные, поступающие вот так
1 = Answer1<br />
2 = Answer2<br />
3 = Answer3<br />
4 = Answer4<br />
5 = Answer5<br />
6 = Answer6<br />
7 = Answer7<br />
8 = Answer8<br />
9 = Answer9<br />
10 = Answer10<br />
11 = Answer11<br />
12 = Answer12<br />
13 = Answer13<br />
14 = Answer14<br />
15 = Answer15<br />
16 = Answer16<br />
17 = Answer17<br />
18 = Answer18<br />
19 = Answer19<br />
20 = Answer20<br />
21 = Answer21<br />
22 = Answer22<br />
23 = Answer23<br />
24 = Answer24<br />
25-26 = Answer25,Answer26<br />
27 = Answer27<br />
28-29 = Answer28,Answer29
Выше указано значение переменной $lines. Поскольку ответ может прийти в массиве, я получил 27 ключей при использовании explode like $lines = explode( "rn", $lines );
.
Ожидаемым моим ответом будет массив с номером до =
и значением после =
, и если ответ разделен запятыми, я бы хотел, чтобы он был следующим,
28-29 => array('Answer28', 'Answer29');
Как я могу добиться этого с помощью PHP?
Комментарии:
1. К тому времени взорвется каждая строка
=
?
Ответ №1:
Попробуйте explode()
на каждой строке использовать foreach()
https://www.php.net/manual/en/function.explode.php
$lines = explode("<br />rn", $lines);
$result = [];
foreach ($lines as $line) {
[$k, $v] = explode(" = ", $line);
$result[$k] = explode(",", $v);
}
print_r($result);