[PHP] Parcourir un tableau avec des objets

patrice86 Messages postés 1380 Date d'inscription   Statut Membre Dernière intervention   -  
kangourouxxx Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis entrain de développer un générateur de phrase aléatoire en php objet et je rencontre un problème.

J'ai un objet Phrase qui contient un tableau. Pour chacune des entrées de ce tableau se trouve un objet Mot. Voici une image pour mieux comprendre l'histoire ;)


L'idée est que je parcours le tableau mots avec une boucle foreach et je regarde si le type (présent dans l'objet Mot) correspond à KUN, KON, PUN, VER:infi, ADV, PRO:REL

Si oui, alors je stock ce type dans la variable $transition
Dans mon exemple, je vais donc garder le type KON.
Là où je coince, c'est que j'aimerai garder le type de l'objet suivant! Ici, c'est à dire que je veux garder le type ADJ de l'objet Mot suivant.
    
public function RechercheTransi($phrase){
        $oracle=null;
        $transition=null;
        foreach ($phrase->getMots() as $element){
            if ($element->getType() == 'KUN' || $element->getType() =='KON' || $element->getType() =='PUN' || $element->getType() =='VER:infi' || $element->getType() =='ADV' || $element->getType() =='PRO:REL'){
                $transition.=$element->getType();
                //ICI COMMENT FAIRE POUR RECUPERER L'OBJET MOT SUIVANT DANS MON TABLEAU ?????
                break;
            }else {
                $oracle.=$element->getGraphie();
            }
        }        
    }


En PHP, il faut utiliser next() pour accéder à la valeur suivante, hors je ne veux pas ça. Je veux accéder directement à l'entréer suivant du tableau pour récupérer le type. De là, je break ma boucle car j'ai les infos que je veux.

Si il faut faire une autre boucle je suis preneur, je ne comprend pas trop là :/

Comment faire ?
Merci pour vos aides !
A voir également:

1 réponse

kangourouxxx Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour,
remplace simplement ta boucle :
foreach ($phrase->getMots() as $element){

Par :
$elements = $phrase->getMots();
foreach ($elements as $key=>$element){
//$element ==> c'est l'obj en cours
//$elements[$key+1] ==> c'est le next obj
}

Normalement ça marche
0