2010-02-10 7 views
0

J'ai un tableau qui est formaté comme si (cet exemple a 5 touches):PHP: Comment effectuer une recherche dans un tableau non indexé?

[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.. 

Les clés du tableau alternent parfois, comme on peut être omis. Comment puis-je rechercher le tableau avec "Serveur: ..." dedans, et s'il existe, l'afficher?

Pour la vie de moi, je suis confus!

Répondre

2

Essayez ceci:

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

si 'serveur:' est pas au début de la chaîne? – Gumbo

+0

@Gumbo: il sera encore trouvé, j'utilise des stripos, il le trouve où que ce soit. – Sarfraz

+0

@Gumbo: la fonction strpos donne l'emplacement de la chaîne où qu'elle se trouve, vous savez que :) – Sarfraz

1

Essayez

array_search()-inspecte le tableau pour une valeur donnée et renvoie la clé associée

Vous devez être un peu plus précis pour savoir si vous souhaitez rechercher une sous-chaîne ou un valeur exacte, par exemple vous voulez rechercher "Serveur: Apache/2.2.3 (Red Hat)" ou juste n'importe quoi avec la sous-chaîne "Serveur" dedans. Dans ce dernier cas, passez à Gumbo's solution, car array_search ne peut pas être utilisé pour les recherches de sous-chaînes.

3

L'approche intuitive serait itérer le tableau et tester chaque élément:

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