2010-02-10 51 views
0

我有被格式化像這樣(在此示例中具有5個鍵)的陣列:PHP:如何在無索引數組中搜索?

[0]: HTTP/1.1 200 OK 
[1]: Date: Wed, 10 Feb 2010 12:16:24 GMT 
[2]: Server: Apache/2.2.3 (Red Hat) 
[3]: X-Powered-By: PHP/5.1.6 
[4]: etc.. 

數組鍵有時互生,如一個可以被省略。我如何搜索其中包含「Server:...」的數組,如果存在,則顯示它?

對於我的生活我很困惑!

回答

2

試試這個:

foreach($your_array as $value) 
{ 
    if (stripos($value, 'Server:') !== false) 
    { 
    echo $value; // we found it !! 
    break; 
    } 
} 
+0

如果'服務器:'是不是在字符串的開始? – Gumbo 2010-02-10 12:38:34

+0

@Gumbo:它仍然會被發現,我正在使用stripos,它發現它永遠是它的地方。 – Sarfraz 2010-02-10 12:43:31

+0

@Gumbo:strpos函數給出了無論它被發現的字符串的位置,你知道:) – Sarfraz 2010-02-10 12:44:16

1

嘗試

array_search() - 搜索給定值的數組,並返回如果成功

你必須要多一點具體的關於是否要搜索字符串或相應的鍵確切的價值,例如你想搜索「服務器:Apache/2.2.3(紅帽)」或只是任何東西與「服務器」在其中。在後一種情況下,請使用Gumbo's solution,因爲array_search不能用於子字符串搜索。

3

直觀的方法是遍歷數組並測試每個項目:

foreach ($array as $item) { 
    if (strncasecmp(substr($item, 0, 7), 'Server:') === 0) { 
     echo $item; 
    } 
}