拆分字符串 - PHP

时间:2014-05-29 23:56:02

标签: php arrays

我有像这样的多任务:

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)  

2 个答案:

答案 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>"
  }
}