[PHP] Parcourir un tableau avec des objets

Fermé
patrice86 Messages postés 1380 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 17 décembre 2024 - Modifié par jordane45 le 29/12/2014 à 17:27
kangourouxxx Messages postés 71 Date d'inscription jeudi 31 janvier 2008 Statut Membre Dernière intervention 6 mars 2015 - 13 févr. 2015 à 08:44
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 jeudi 31 janvier 2008 Statut Membre Dernière intervention 6 mars 2015 2
13 févr. 2015 à 08:44
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