我想每一个后弦:
和每一个之前\n
从以下方面:
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:-
来源(alert[4]->info->description
有人问这个问题):https : //opendata-download-warnings.smhi.se/api/version/2/alerts.json
我尝试过,explode()
但是在那之后,我不知道如何删除\nVar
数组中的其他内容。
array(5) {
[0]=>
string(4) "När"
[1]=>
string(45) "Sent lördag kväll och natt till söndag
Var"
[2]=>
string(34) "Främst norra Jämtland
Intensitet"
[3]=>
string(25) "Väst ca 21 m/s
Kommentar"
[4]=>
string(1) "-"
}
这是我想要的样子:
array(5) {
[0]=>
string(45) "Sent lördag kväll och natt till söndag"
[1]=>
string(34) "Främst norra Jämtland"
[2]=>
string(25) "Väst ca 21 m/s"
[3]=>
string(1) "-"
}
到目前为止,这是我尝试过的方法:
$content = file_get_contents('https://opendata-download-warnings.smhi.se/api/version/2/alerts.json');
$content = json_decode($content);
foreach($content->alert AS $alert) {
if($alert->info->area->areaDesc == '013') {
$desc = explode(':', $alert->info->description);
$descc = explode("\n", $desc); # Don't know how to explode by \n since it returns an error; explode() expects parameter 2 to be string
echo '<pre>'; var_dump($desc); echo '</pre>';
}
}
您可以使用正则表达式捕获:
和之间的内容\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
)
)
:
, \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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句