ucfirst(strtolower()) sur toute une colonne d'un tableau

VaN
Mammouth du PHP | 1107 Messages

18 févr. 2009, 18:47

Bonsoir,

j'ai un tableau PHP de villes, dont voici une portion ;

Code : Tout sélectionner

Array ( [0] => Array ( [city_id] => 39 [name] => CHANES [num] => 01120 ) [1] => Array ( [city_id] => 40 [name] => CHARIX [num] => 01130 ) [2] => Array ( [city_id] => 53 [name] => CHAZEY SUR AIN [num] => 01150 ) [3] => Array ( [city_id] => 78 [name] => CHAVANNES SUR REYSSOUZE [num] => 01190 ) [4] => Array ( [city_id] => 89 [name] => CHATILLON EN MICHAILLE [num] => 01200 )
Et je souhaiterai effectuer un ucfirst(strtolower()) sur toute la colonne [name]. Evidemment, je pourrai le faire au moment de l'affichage, dans ma boucle, mais en fait non, car avant l'affichage, je array_push() un tableau de départements dans le tableau de villes, et au final, je voudrai que le ucfirst(strtolower()) ne soit appliqué que sur le nom des villes, pas sur celui des départements.

Il faut donc que l'opération soit réalisée avant le array_push().

Une fonction PHP qui permette de faire cela en une ligne, simplement ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphanteau du PHP | 12 Messages

18 févr. 2009, 18:53

Une simple boucle avant l'enregistrement du nouveau tableau ne serait-il pas suffisant ?

Une boucle FOR qui t'enregistre au fur et à mesure le nom de la ville modifier.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 févr. 2009, 18:53

Une fonction non, mais une boucle simple oui...
for ($i=0; $i<count($tab); $i++) {
  $tab[$i]['name'] = ucfirst(strtolower($tab[$i]['name']));
}
Edit : damn ! grillé :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

VaN
Mammouth du PHP | 1107 Messages

18 févr. 2009, 19:01

yep, j'ai fait ça comme ça en fait, ça revient au même (mais j'ai toujours préféré les foreach() aux for(), plus pratique je trouve :) ) :
foreach($cities as $key => $city) {
		$cities[$key]["name"] = ucfirst(strtolower($city["name"]));
	}
D'ailleurs, un foreach($array as $key => $col) est plus gourmand qu'un for($i = 0, $i < count($array), $i++) ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

edit : authed + tag [résolu]