2015-02-11 24 views
0

我想从字符串中获取法庭名称。但是我有找到它的问题。一般而言,它位于方括号内的第一次出现,但可能位于第二次出现。所以,我试图通过数组来循环检查法院名称,如果不匹配任何法院名称,则打印第二次出现。这里是代码:如何从PHP中的字符串中获取正确的法院名称

$string='<b>Yara 
Pilbara Fertilisers Pty Ltd [formerly known as Burrup Fertilisers Pty Ltd] v 
Oswal (No. 8)</b> (FCA) - cross-vesting - Federal Court 
proceedings transferred to Supreme Court of Victoria'; 

preg_match_all('/\(([^\)]*)\)/', $string, $matches); 
    $all_courts=array("HCA","FCAFC","FCA","NSWCA","NSWSC","VCA","QCA","QSC","SASCFC","SASC","TSCA","TSC","WASCA","WASC","ACTCA","ACTSC","NTCA","NTSC"); 
$court_name=$matches[1][0]; 

     for($i=0;$i<count($all_courts);$i++) 
     { 
      if($all_courts[$i]!=$court_name) 
      { 
       $court_name=$matches[1][1]; 
      } 

     } 

echo $court_name; 

回答

0

如果我正确理解你,你的逻辑不会做你想做的。它将始终使用第二个括号,因为$ court_name将无法匹配$ all_courts中的某个值。你需要扭转这种逻辑,例如\

if (!in_array($court_name, $all_courts)) { 
    $court_name = $matches[1][1]; 
} 
+0

真棒,bobdye ..这是我想要的东西..感谢了很多 – floCoder 2015-02-11 00:41:56

+0

喜,也可我得到的指数没有。的匹配位置? – floCoder 2015-02-12 01:11:25

+0

$ match = array_search($ court_name,$ all_courts)会给你匹配的索引。 – bobdye 2015-02-12 14:58:09

相关问题