Aller on commence la semaine en force, avec une petite question
J’ai une chaine de caractères qui devra prendre la forme suivante :
B1 EN;C4 RA
et ainsi de suite.
En gros il s’agit de codes qui vont par paire, et on peut en avoir plein… tout est malheureusement stocké comme du texte dans une seule colonne dans la BDD.
D’où mon besoin, dans un premier temps, de nettoyer tout ca
$string = "B1 EN;C4 RA";
$aff = explode(";", $string);
foreach($aff as $value)
{
echo $value.'<br>";
}
// Affiche :
// B1 EN
// C4 RA
?>
Jusqu’ici tout est ok à mon avis.
Sauf que, ces codes ont bien évidement une signification, comme indiqué : ils vont en couple. en gros le premier indique une position, et le second désigne une nature de dégats (enfoncé = EN par exemple). Il me faudrait donc traduire ces éléments en bon français.
Je pense construire un array de type : $arr = array("foo" => "bar", … mais avec mes codes.
Ainsi je dois pouvoir afficher en clair chacun de mes codes.
Mais comment respliter mes “sous codes” ? J’ai tenté un autre explode dans le premier, mais ca me semble un peu hasardeux comme méthode.
Merci par avance pour vos lumières, j’espère être à peut près clair, car c’est passablement confu pour moi
$string = "B1 EN; A2 BL";
$truc = array();
//La tu explodes ta chaine en petites sous chaînes
$explode_string = explode(';', $string);
//On fait toutes les sous chaines pour chopper les A1 séparés des EN
foreach($explode_string as $estring)
{
$truc[] = explode(' ', $estring);
}
Voila…
Truc c’est un tableau qui contient un tableau pour chaque “A1 EN” avec en 0 A1 et en 1 EN
si tu veux te servir de ta première valeur comme d’index dans ton tableau, il va falloir ruser un peu, car explode et tout ça créer des valeurs (et non des clés) …
si tu fait un print_r(), de $truc, ça ressemble à ça :
j’ai des trucs qui sont du genre A1 et d’autres A22, donc pas la même taille non ?
Sinon la typo notée plus haut est une erreur de frappe dans mon post, ca fonctionne naturellement.
Je sais pas si je vais pas rester avec mon double foreach quand même, ca sera peut être plus simple… Parce que stocker les deux morceaux de code c’est qu’un morceau, je stocke avant ca les codes en index d’array et les équivalents en texte complet de ces codifications…
A1 => TRUC MUCHE DE BLABLA
et ensuite
echo : $array[$truc[]] pour afficher le bon texte.
Le temps de trouver ma clef usb, je poste le code complet ici