PHP: Как мне искать в неиндексированном массиве? - PullRequest
0 голосов
/ 10 февраля 2010

У меня есть массив, который отформатирован так (в этом примере 5 ключей):

[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: ...» в нем, и если он существует, отобразить его?

За свою жизнь я запутался!

Ответы [ 3 ]

3 голосов
/ 10 февраля 2010

Интуитивно понятный подход заключается в итерации массива и проверке каждого элемента:

foreach ($array as $item) {
    if (strncasecmp(substr($item, 0, 7), 'Server:') === 0) {
        echo $item;
    }
}
2 голосов
/ 10 февраля 2010

Попробуйте это:

 foreach($your_array as $value)
 {
  if (stripos($value, 'Server:') !== false)
  {
    echo $value;  // we found it !!
    break;
  }
 }
1 голос
/ 10 февраля 2010

Попробуйте

array_search() - Выполняет поиск в массиве заданного значения и возвращает соответствующий ключ в случае успеха

Вы должны быть более точными в том, хотите ли вы искать подстроку или точное значение, например, Вы хотите найти "Сервер: Apache / 2.2.3 (Red Hat)" * или просто что-нибудь с подстрокой "Сервер" . В последнем случае используйте решение Гамбо , поскольку array_search нельзя использовать для поиска по подстроке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...