Page 1 sur 1

strtolower et array

Posté : 04 nov. 2005, 19:40
par donatello
bonjour,
je viens de découvrir strtolower() pour passer une chaine en minuscules.
Comment faire pour utiliser cette fonction avec un tableau?
je fais ceci mais ça ne marche pas:
$tab= array('A', 'B','C','D');
$min= strtolower($tab);

Posté : 04 nov. 2005, 20:25
par gesualda
Salut,

Essaye cela ca devrait marcher.
<?php
$tab= array('A', 'B','C','D');
$cnt = count($tab); 		
foreach($tab as $min){		
	echo strtolower($min).'<br>';	
		 }
?>
++

Posté : 04 nov. 2005, 20:27
par Truc
Hmm tu l'a découvert mais pas examiné apparemment :wink:
regarde la doc tu vera que strtolower() attends une chaine de caratère et non un tableau.

tu peut décomposer:
foreach($tab as $cle =>$val)
    $tab[$cle]=strtolower($val);

Posté : 04 nov. 2005, 20:38
par Ripat
Ou encore simplement:
$tab = array_map('strtolower', $tab);

Posté : 04 nov. 2005, 20:42
par donatello
$tab = array_map('strtolower', $tab);
tain, ça c top. j'allais poser une question mais t'as lu dans mes pensées.
Merci à tous!

Posté : 04 nov. 2005, 20:48
par donatello
là je vais faire
$tab = array_map('strtolower', $tab); 
$tab = array_map('ucfirst', $tab); 
est ce qu'il y a un truc dans le genre
$tab = array_map('strtolower', 'ucfirst', $tab); 

Posté : 04 nov. 2005, 21:05
par Ripat
est ce qu'il y a un truc dans le genre
$tab = array_map('strtolower', 'ucfirst', $tab); 
Non.

Soit tu utilises un bon vieux foreach pour traverser le tableau, soit:
function ma_fonction($v){
  return ucfirst(strtolower($v));
}

$a = array_map('ma_fonction', $a);
Les deux seront sans doute plus efficace que faire deux array_map car ne traverseront qu'une seule fois le tableau à traiter.