我通过互联网搜索但我无法找到问题的解决方案。 我有一个包含数值的字符串,我想获取这些数值并将它们存储在一个不同的变量中。
这是我的字符串
$string = "WALIOFANYA MTIHANI : 70
WASTANI WA SHULE : 138.2571
NAFASI YA SHULE KIWILAYA: 25 kati ya 125
NAFASI YA SHULE KIMKOA : 117 kati ya 571
NAFASI YA SHULE KITAIFA : 1249 kati ya 15656 ";
输出我想要
$v1 = 70
$v2 = 138.2571
$v3 = 25
$v4 = 125
$v5 = 117
$v6 = 571
$v7 = 1249
$v8 = 15656
我尝试使用stristr()
和substr()
,但我失败了;
这甚至可能吗?如果是这样我怎么能这样做?
请帮助。
答案 0 :(得分:3)
$string = "WALIOFANYA MTIHANI : 70
WASTANI WA SHULE : 138.2571
NAFASI YA SHULE KIWILAYA: 25 kati ya 125
NAFASI YA SHULE KIMKOA : 117 kati ya 571
NAFASI YA SHULE KITAIFA : 1249 kati ya 15656 ";
preg_match_all('#([0-9.]+)#is', $string, $matches);
print_r($matches[1]);
答案 1 :(得分:1)
您可以使用preg_split:
$result = preg_split('~(?:[^\d.]++|(?<!\d)\.)+~', $str, null, PREG_SPLIT_NO_EMPTY);
答案 2 :(得分:-1)
preg_match_all('/\((\d+(?:\.\d+)?)\)/', $str, $matches)
应该适合你
$str = "WALIOFANYA MTIHANI : 70
WASTANI WA SHULE : 138.2571
NAFASI YA SHULE KIWILAYA: 25 kati ya 125
NAFASI YA SHULE KIMKOA : 117 kati ya 571
NAFASI YA SHULE KITAIFA : 1249 kati ya 15656 ";
代码如下:
if (preg_match_all('/\((\d+(?:\.\d+)?)\)/', $str, $matches) > 0) {
var_dump($matches[1]);
}