2011-09-06 29 views
0

我有這樣幫助與正則表達式

[tag id="4554" align="center"] 

我怎樣才能獲得該標籤可作爲陣列中的一個關鍵,然後所有的參數都是動態數組作爲鍵=>像

值插入標籤
Array (
    [tag] => Array 
     (
      [id] => 4554 
      [align] => "center" 
     ) 

) 

回答

1

我一般都主張算法的正則表達式:

$str = '[tag id="4554" align="center"]'; 

$arr = explode(" ",trim($str,'[]')); 

$mainkey = array_shift($arr); 

$temp = array(); 
foreach($arr as $part) 
{ 
    $parts = explode("=",$part); 
    $temp[$parts[0]] = trim($parts[1], '"'); 
} 

$arr2[$mainkey] = $temp; 

print_r($arr2); 

輸出:

Array 
(
    [tag] => Array 
     (
      [id] => 4554 
      [align] => center 
     ) 

) 
2
$string = '[tag id="4554" align="center"]'; 

preg_match_all('/\[tag id="(?P<id>[^"]+)" align="(?P<align>[^"]+)"\]/', $string, $matches, PREG_SET_ORDER); 

foreach($matches as $match) { 
    $tag = array(
     'tag' => array(
      'id' => $match['id'], 
      'align' => $match['align'], 
     ), 
    ); 
    print_r($tag); 
} 

嘗試在這裏:http://ideone.com/72AxJ