Page 1 sur 1

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

Posté : 18 févr. 2009, 18:47
par VaN
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]

Posté : 18 févr. 2009, 18:53
par Anty
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.

Posté : 18 févr. 2009, 18:53
par Ryle
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é :)

Posté : 18 févr. 2009, 19:01
par VaN
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]