affichage array

hervecar62
Invité n'ayant pas de compte PHPfrance

12 juil. 2013, 07:25

Bonjour,
j'ai un tableau simple dont je souhaite manipuler les composants pour l'affichage:
$options = ('code1-AA', 'code1-AB', 'code1-AC', 'code2-AA', 'code2-AD');
et pour l'affichage je voudrai afficher ceci:
code1 (AA, AB, AC)
code2 (AA, AD)
Je sèche sur ce problème depuis un moment, pouvez vous m'aider svp.
Merci.

Mammouth du PHP | 2278 Messages

12 juil. 2013, 08:12

Y a-t-il un nombre fixe d'options pour chaque valeur de code1, code2, etc?
Tu vas avoir besoin de for (pour parcourir le tableau) et de substr pour extraire les bouts.
Le saut de ligne est ajouté soit quand l'indice dans le tableau prend une valeur prévisible, soit quand on passe de code1 à code2
$ancien_code ="";
$nb_options = count($options);
for ($i = 0; $i <$nb_options; $i++)
{
$le_choix = explode("-", $options[$i]);
$code = $le_choix[0];
$valeur = $le_choix[1];
if ()
{
}
}
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 267 Messages

12 juil. 2013, 08:15

Bonjour,

Voici le code :
$options = array('code1-AA', 'code1-AB', 'code1-AC', 'code2-AA', 'code2-AD');

foreach ($options as $option) {
    list($optionPart1, $optionPart2) = explode('-', $option);
    $newOptions[$optionPart1][] = $optionPart2;
}

foreach ($newOptions as $code => $codeOptions) {
    $codeLine = $code.' (';
    foreach ($codeOptions as $option) {
        $codeLine .= $option.', ';
    }
    $codeLine = substr($codeLine, 0, -2);
    $codeLine .= ')<br />';
    echo $codeLine;
}
Bonne journée,
dix2

Hervecar62
Invité n'ayant pas de compte PHPfrance

12 juil. 2013, 15:01

Merci beaucoup ça fonctionne :P