2013-10-25 45 views
-3

如何從陣列特定的字符串,我給出的示例陣列的如下如何搜索特定字符串數組在PHP

Array 
(
    [0] => Paper:300gsm Silk 
    [1] => Lamination:Gloss 
    [2] => Despatch:Standard 5 day 
) 

我需要的,如果Despatch搜索在陣列可用,如果可用,則獲得它該值給了後:及其Standard 5 day

有未在陣列固定序列,並且還有不能修正類似Despatch:Standard 5 day串它可以是變化像Despatch:Standard 2 dayDespatch:Standard 5 day或者可以是Despatch:24 hours

+2

你的降薪是因爲你沒有顯示你的方法 –

+0

當你找到你想要的東西時,使用'array_search'來分解字符串。 http://www.php.net/manual/en/function.array-search.php –

+0

在搜索中沒有固定字符串'Despatch:Standard 5 day'它可能是'Despatch:Standard 6 day'或者可能是'發貨:24小時' –

回答

0

字符串搜索可以使用的foreach和爆炸

foreach ($array as $value) { 
    $exp = explode(':', $value); 
    if ($exp[0] == 'Despatch') return $exp[1]; 
} 
+0

'explode()的第一個參數是分號 –

+0

謝謝,剛纔注意到我的錯誤。 – evuez

2

首先,看一看關聯數組。然後你的陣列是這樣的:

$myArray 
(
    ['Paper'] => 300gsm Silk 
    ['Lamination'] => Gloss 
    ['Despatch'] => Standard 5 day 
) 

你可以這樣調用它,那麼:

$value = $myArray['Despatch'] 
+0

我無法理解關聯數組。 :( –

+0

然後你必須使用其他已經在這裏告訴你的方法,但我只能建議你嘗試學習它,它是PHP提供的最大優勢之一,並且可以使你的生活變得更加簡單:); –

0

這是你想要的結果?

$arr = array("Paper:300gsm Silk", 
      "Lamination:Gloss", 
      "Despatch:Standard 5 day" 
      ); 

$searchword = "Despatch"; 
$matches = array_filter($arr, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); }); 


$res=substr($matches[2],9); 
echo $res; 
+0

它給'語法錯誤,意外的T_FUNCTION' –

+0

嘗試此鏈接:http://codepad.viper-7.com/m408ky – Duikboot