[RESOLU] Problème sur preg_grep

Petit nouveau ! | 4 Messages

11 févr. 2014, 19:36

Bonjour à tous,

L'erreur doit-être toute bête mais malheureusement je ne la vois pas !!

Voici ma fonction :
function search_array_time($array)
{
if ($result=preg_grep('/[0-1][0-9]:[0-5][0-9]:[0-5][0-9]$/', $array)){
		 $result = array_values($result); 
		return $result[0]; 	
	 }
}
Voici mon $array passer en argument :

Array ( [0] => N [1] => 0200000 [2] => ABC [3] => 14036 [4] => 06:01:03.86 [5] => ABCDE [6] => 00000010 [7] => ABCDEF [8] => ABC [9] => (ABCDS/ABEDC/0000001) [10] => ABCDFE [11] => (ABC [12] => AB [13] => ABCDED [14] => AB )

Je cherche à récupérer le field [4] => 06:01:03.

Je vous remercie par avance pour votre aide :)

ViPHP
xTG
ViPHP | 7331 Messages

11 févr. 2014, 21:00

Tu ne vérifies pas la totalité de ta chaîne.
Il te manque la partie du ".86" dans ton regex. ;)

Petit nouveau ! | 4 Messages

11 févr. 2014, 21:26

Merci pour ta réponse cela fonctionne désormais :))

En revanche je pensais qu'il m'était possible de récupérer seulement la partie avant le '.86' grâce à cette regex.

Qu'aurais-je du rajouter à la fin de ma regex afin qu'il ne prenne pas en compte le reste de la chaine ?

Vincent.

ViPHP
xTG
ViPHP | 7331 Messages

12 févr. 2014, 19:24

Code : Tout sélectionner

/[0-1][0-9]:[0-5][0-9]:[0-5][0-9](.*)$/
J'aurai vu un truc de ce genre, mais non testé. :)

Petit nouveau ! | 4 Messages

12 févr. 2014, 20:56

Merci pour ta réponse :)

Cela ne fonctionne pas, la solution que j'ai trouvé a été finalement d'utiliser preg_match qui permet de capturer une donnée grâce aux parenthèses.