Вы можете использовать регулярные выражения, чтобы захватить то, что находится между :
и \n
.
$text = "När:Sent lördag kväll och natt till söndag\nVar:Främst norra Jämtland\nIntensitet:Väst ca 21 m/s\nKommentar:-";
preg_match_all("/\w+:(.*?)\\n/", $text, $match);
print_r($match);
Вывод:
Array
(
[0] => Array
(
[0] => r:Sent lördag kväll och natt till söndag
[1] => Var:Främst norra Jämtland
[2] => Intensitet:Väst ca 21 m/s
)
[1] => Array
(
[0] => Sent lördag kväll och natt till söndag
[1] => Främst norra Jämtland
[2] => Väst ca 21 m/s
)
)
https://3v4l.org/rpu5E
К сожалению, мое регулярное выражение mojo сегодня не со мной ...
Так что мне пришлось переключиться на старые добрые функции explode и array_functions.
Я мультиэксплоидировать массив на
:
и
\n
, затем я пересекаю массив нанеровные ключи, использующие range () для получения необходимых ключей.
$text = "När:Sent lördag kväll och natt till söndag\nVar:Främst norra Jämtland\nIntensitet:Väst ca 21 m/s\nKommentar:Sydväst 14-17 m/s. Avtagande söndag morgon.";
$exploded = multiexplode(array("\n",":"), $text);
if(count($exploded) > 2){
$range = array_flip(range(1,count($exploded),2));
}else{
$range = ["1" => 1];
}
$result = array_intersect_key($exploded, $range);
print_r($result);
Вывод:
Array
(
[1] => Sent lördag kväll och natt till söndag
[3] => Främst norra Jämtland
[5] => Väst ca 21 m/s
[7] => -
)
Если вам нужен 0 индексированный массив, используйте array_values для сброса ключей.
https://3v4l.org/tbgLM