En utilisant deux tableaux associatifs et une boucle foreach imbriquée, je veux faire écho à ce texte:

1abcd
2abcd
3abcd
4abcd

Mais d'une manière ou d'une autre, j'obtiens juste 4d. J'ai revu le code plusieurs fois et je sais que ce doit être quelque chose de très simple, mais je ne trouve pas le problème.

<?php
$output = "";
$list1 = array('1' => '1', '1' => '2', '1' => '3', '1' => '4');
$list2 = array('a' => 'a', 'a' => 'b', 'a' => 'c', 'a' => 'd');

foreach($list1 as $key1 => $value1)
{   
    $letters = '';
        foreach($list2 as $key2 => $value2)
    {
        $letters .= $value2;
    }
   $output .= $value1;
   $output .= $letters . '<br>';
}

echo $output;

S'il vous plaît, aidez-moi à résoudre ce problème !! Je vous remercie

-1
Rodrigo 14 août 2017 à 01:56

2 réponses

Meilleure réponse

Pour vérifier votre baie, procédez comme suit

echo "<pre>";
echo print_r($list1);
echo "</pre>";

Il renverra ceci

Array
(
[1] => 4
)
1

Afin d'obtenir la réponse que vous souhaitez, vous devez d'abord ajuster votre tableau associatif à quelque chose comme ça

$list1 = array('1' => '1', '2' => '2', '3' => '3', '4' => '4');
$list2 = array('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd');

Ensuite, vous pouvez continuer et faire ceci

$array = array();
foreach($list1 as $key1 => $value1){

$letters = '';
foreach($list2 as $key2 => $value2){
    $letters .= $value2;
}
$output .= $value1;
$output .= $letters . '<br>';

}

echo $output;

J'espère que ça aide.

1
Sunday Okoi 13 août 2017 à 23:27

Notez que vous dites que vous construisez un tableau associatif, «associatif» signifie que chaque clé «unique» aura une valeur. Dans votre tableau, vous remplacez sans cesse vos valeurs, rappelez-vous que la clé est comme le «lieu» où vous souhaitez stocker la valeur. Si vous stockez une valeur différente au même endroit ou dans la même clé, elle sera remplacée.

La bonne manière:

$list1 = array('0' => '1', '1' => '2', '2' => '3', '3' => '4');
$list2 = array('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd');

Si vous voyez qu'il y a un endroit ou une clé différent pour chaque valeur.

Si vous exécutez votre code, cela devrait fonctionner maintenant. Et si vous faites attention, vous remarquerez que vous n'avez même pas besoin de lettres comme clés.

$list1 = array('0' => '1', '1' => '2', '2' => '3', '3' => '4');
$list2 = array('0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd');

En essayant les deux, vous en saurez plus sur les tableaux. Ce sont les bases mêmes.

-1
Diego Ponciano 13 août 2017 à 23:29