2010-12-15 3 views
19

En utilisant strtolower() sur un tableau, y a-t-il un moyen de rendre la sortie en dessous des minuscules?strtolower() sur un tableau

<?=$rdata['batch_id']?> 
strtolower($rdata['batch_id']) 
+6

La question n'est pas claire. – zerkms

+0

@zerkms: Je pense que la question est que ce code modifierait la valeur de '$ rdata ['batch_id']' changerait et la réponse est non – RageZ

+0

@RageZ: Je le pensais aussi, mais c'est tellement évident que je préfère penser que j'ai juste mal compris ses attentes ;-) – zerkms

Répondre

82

Le nom de la fonction est strtolower(). Si vous souhaitez appliquer ce sur chaque élément du tableau, vous pouvez utiliser array_map():

$array = array('ONE', 'TWO'); 
$array = array_map('strtolower', $array); 

Maintenant, votre tableau contiendra « un » et « deux ».

+1

Pour un bon sans modifier le contenu de mon tableau: si (! in_array (strtolower ($ filename [0]), array_map ('strtolower', $ filesArray))) { – ImaginedDesign

4

Si vous jetez un oeil à la signature de strtolower il ne mentionne pas de références

string strtolower (string $str) 

si votre code ne modifiera pas la valeur de $ RDATA [ 'BATCH_ID']

<?=$rdata['batch_id']?> 
strtolower($rdata['batch_id']); 

ce code serait

$rdata['batch_id'] = strtolower($rdata['batch_id']); 
6

array_map est préféré, mais une autre solution est:

foreach($array as &$v) { 
    $v = strtolower($v); 
} 

Notez que l'esperluette & rend le $v modifiable.

+1

Assurez-vous de toujours faire " désactivé ($ v); " après une boucle foreach avec un '&' dedans. Ou assurez-vous de ne plus utiliser '$ v' dans la même portée. Autrement tout ce qui est assigné à $ v sera placé dans votre tableau original. Exemple où les choses vont mal: http://sandbox.onlinephpfunctions.com/code/6b6c3a779d5c43cebee4020786f6090632f33822 – DraughtGlobe

Questions connexes