Progressant chaque jour dans le Php je découvre des choses et particulièrement cette fonction : array_map qui permet d'exécuter récursivement sur un tableau une fonction fournie en entrée ...
J'ai donc commencé avec des utilisations plutôt classique ... passer un tableau complet en majuscules etc ...
Dernièrement j'ai rajouter des recherche regexp mais là je commence à bloquer sur le problème suivant :
Une des façon de poser cette fonction est je suppose :
array_map(function($value) {
echo $value;
} , $un_tableau);
La où je commence à galérer serait plutôt sur la possibilité de passer plusieurs paramètres à la fonction. J'ai lu la définition de array_map sur Php.net qui nous explique qu'il est possible de travailler avec plusieurs tableaux du genre :function show_Spanish($n, $m)
{
return("Le nombre $n se dit $m en Espagnol");
}
function map_Spanish($n, $m)
{
return(array($n => $m));
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("show_Spanish", $a, $b);
print_r($c);
$d = array_map("map_Spanish", $a , $b);
print_r($d);
Voulant toujours faire plus raccourci ... d'ailleurs je sais pas si c'est un bon reflexe ... j'essaye d'adapter cela à mon exemple suivant :Lecture d'un repertoire avec la fonction glob() sur le masque suivant :glob("produits/produit_*.htm")
Ce qui m'interesse maintenant c'est la valeur du ' * ' que j'aimerais classer dans une valeur min et une valeur max afin d'avoir le premier numéro ainsi que le dernier ...
Et là ca bloque ... voici le code ...
$pointeur=opendir('./produits');
$tableau = glob("produits/produit_*.htm");
$nombre = count($tableau);
$res = array();
$minmax = array( 'min' => 0 , 'max' => 0);
array_map(function($value) {
preg_match('![0-9]+!' , $value , $extract);
$minmax['min'] = ( $extract[0] < $minmax['min'] ) ? $extract[0] : $minmax['min'];
$minmax['max'] = ( $extract[0] > $minmax['max'] ) ? $extract[0] : $minmax['max'];
} , $tableau , $minmax);
L'erreur générée est la suivante : M'y suis-je mal pris ??? Qu'est ce qui ne peux ne pas convenir suivant vos avis ?Notice: Undefined variable: minmax in C:\wamp\www\
Merci d'avance pour vos réponses ....