Bonjour a tous,
J'aimerais savoir quelle est la facon qui est la moins gourmande pour php entre 2 solutions visant a récupérer un ou plusieurs chiffres.
(but du jeux : 5-test.html => 5, 55-test.html => 55, 5-test4-r.html => 5)
pour essayer de trouver une reponse j'ai essayé ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
	$s_str = '5-mont6-itre.html';
	$i_fin = 1000;						//nb de test a effectuer 
	$i_time1 = microtime();
//	for ($i=0; $i<$i_fin; $i++) {
		$a_array = explode('-',$s_str);
		$test = $a_array[0];
	//	print $a_array[0].'<br>';
//	}
	$i_time2 = microtime();
	print "tps execution du explode ".(($i_time2-$i_time1))." seconde<br />";
 
	$i_time1 = microtime();
//	for ($i=0; $i<$i_fin; $i++) {
		preg_match('#^([0-9]+).+#', $s_str, $a_array);
		$test = $a_array[1];
	//	print $a_array[1].'<br>';
//	}
	$i_time2 = microtime();
	print "tps execution du preg_match ".(($i_time2-$i_time1))." seconde<br />";
j'ai tester ce code avec et sans la boucle, avec, le preg match retourne un chiffre plus grand que le explode, tandis que sans la boucle, le preg_match retourne un chiffre plus petit.
Est ce que je peux me fier aux chiffres retournés ?

Quelle est la façon de faire la plus rapide dans le cas ou le traitement ne tournerais pas dans une boucle ?

Merci d'avance