Page 1 sur 1

Boucle sous_tableaux

Posté : 14 juin 2011, 17:43
par smax
Bonjour,

J'ai un tableau qui contient une liste de verbes

pour chaque verbe j'ai besoin de le stocker dans un tableau ici $tab
<?php
function afficher($liste)
{

   foreach($liste as $tab)
   {
    if(is_array($tab))
    {
    $tab1['un'][] = $tab[0]; //verbe 1 etc..
    $tab1['deux'][] = $tab[1];
    }
  }
return $tab1;
}
?>

C'est à dire :

Si par exemple $liste est un tableau avec 10valeurs ( verbes)
mes sous tableaux seront au nombre de 10

donc ce qu'il y'a en dessous sera le nombre de tableau crées!

En gardant l'indexation sur chaque $tab mais en parcourant toujours avec foreach
<?php
$tab1['un'][] = $tab[0];
$tab1['deux'][] = $tab[1];
...
$tab1['dix'][] = $tab[10];

echo $cpt = count($liste[0]); //m'affiche le nombre de valeurs il me reste a créer les tabs en fonction de cette valeur


?>


Merci pour votre aide , je ne trouve pas de solution malgré beaucoup de tentatives!

Re: Boucle sous_tableaux

Posté : 14 juin 2011, 18:01
par moogli
salut,

je pige pas trop ce que tu veux faire.
$liste est un tableau de tableaux ?

dans ce cas tu peux aussi utiliser foreach sur $tab, après si tu tiens réellement a ce que ton tableau soit indexé avec des nom (un, deux trois) la va falloir gérer la chose (avec un tableau du genre $indexalpha = array(0=>'zero',1=>'un' , 2=>'deux' ...); et après pour avoir l'index que tu veux $indexalpha[ $indexdutableau]; ).

@+

Re: Boucle sous_tableaux

Posté : 14 juin 2011, 18:11
par smax
<?php
function afficher($liste)
{

   foreach($liste as $tab)
   {
    if(is_array($tab))
    {

       for($i=0; $i<count($liste[0]);$i++)           
        {
       $tab1[$i][] = $tab[$i]; //verbe 1 etc..
       }
    }
  }
return $tab1;
}
?>

Re: Boucle sous_tableaux

Posté : 17 juin 2011, 16:07
par sirakawa
Une idée qui retourne un tableau de tous les verbes, verbe par verbe
<?PHP
function traite ($liste)
{
$tab1 = array();
$i=1;
foreach($liste as $tab)
{

if (is_array($tab)):
$tab1[$i]['infinitif'] = $tab[0]; //verbe 1 etc..
$tab1[$i++]['indic pr 1 s'] = $tab[1];
endif;

}
return $tab1;
}
$liste = array
(
array
(
"aimer", "aime", "aimons", "aiment"
),
array
(
"boire", "bois", "buvons", "boivent"
)
);
$tab_final= traite ($liste);
print_r($tab_final);

?>

et le même avec lecture verticale (tous les infinitifs, tous les indicatifs...
<?PHP
function traite ($liste)
{
$tab1 = array();
$i=1;
foreach($liste as $tab)
{

if (is_array($tab)):
$tab1['un'][] = $tab[0]; //verbe 1 etc..
$tab1['deux'][] = $tab[1];
endif;

}
return $tab1;
}
$liste = array
(
array
(
"aimer", "aime", "aimons", "aiment"
),
array
(
"boire", "bois", "buvons", "boivent"
)
);
$tab_final= traite ($liste);
print_r($tab_final);

?>