我有像这样的多任务:
string '10<sup>ème</sup><span class="tLost">(-2)</span>' (length=48)
string '7<sup>ème</sup><span class="tLost">(-2)</span>' (length=47)
string '5<sup>ème</sup><span class="tLost">(-2)</span>' (length=47)
string '2<sup>ème</sup><span class="tLost">(-2)</span>' (length=47)
string '4<sup>ème</sup><span class="tWin">(+1)</span>' (length=46)
我想知道我可以分两部分来爆炸它们:
array(
[0]=>'10<sup>ème</sup>',
[1]=>'<span class="tLost">(-2)</span>'
)
我尝试了这个,但它没有工作:
$position[] = explode("</sup>",$value);
还有其他方法吗?谢谢你 这是我要转换的阵列的一部分:
array (size=21)
0 =>
array (size=4)
'Mot Clé' => string 'TEST1' (length=5)
'Bing' => string '0<sup>ème</sup><span class="tLost">(-1)</span>' (length=47)
'Google' => string '10<sup>ème</sup><span class="tLost">(-2)</span>' (length=48)
'Yahoo' => string '=' (length=1)
1 =>
array (size=4)
'Mot Clé' => string 'TEST2' (length=5)
'Bing' => string '0<sup>ème</sup><span class="tLost">(-1)</span>' (length=47)
'Google.fr France' => string '7<sup>ème</sup><span class="tLost">(-2)</span>' (length=47)
'Yahoo' => string '=' (length=1)
2 =>
array (size=4)
'Mot Clé' => string 'TEST3' (length=5)
'Bing' => string '0<sup>ème</sup><span class="tLost">(-1)</span>' (length=47)
'Google' => string '5<sup>ème</sup><span class="tLost">(-2)</span>' (length=47)
'Yahoo' => string '=' (length=1)
答案 0 :(得分:0)
它不起作用,因为爆炸将删除模式。
如果您只需要将字符串拆分为两部分,则可以使用此简单代码:
$first = substr($var, 0, strpos($var, "<span"));
$second = substr($var, strpos($var, "<span"), strlen($var) - strpos($var, "<span"));
其中$ var应该是您要拆分的字符串。
答案 1 :(得分:0)
试试这个正则表达式...获取所有标签并放入一个数组
$str = '10<sup>ème</sup><span class="tLost">(-2)</span>';
$arr = array();
preg_match_all('#<.[^<]+>.+?</.[^<]*>#', $str, $arr);
输出
array(1) {
[0]=>
array(2) {
[0]=>
string(15) "<sup>ème</sup>"
[1]=>
string(31) "<span class="tLost">(-2)</span>"
}
}