Page 1 sur 1

Double foreach, if..

Posté : 11 avr. 2012, 18:33
par binboum
J'ai un double foreach, je souhaite que le if check d'abord champ 1, sur le array plus bas il doit check [0][0] et [1][0], si il ne trouve rien il doit passer au deuxieme champ 2, et si il n'arrive pas au champ 3.. seulement avec les deux foreach, je n'arrive à rien.
La valeur de $i était un $i++; mais je me retrouve avec des erreurs .. Undefined offset




foreach ($array as $k => $plop) {
            $links[$k] = isset($links[$plop]) ? explode(PHP_EOL, trim($links[$plop])) : '';
			
            foreach ($links[$k] as $link_1) {
			
                $link_2[$k][] = explode(';', trim($link_1));
///////////////////////////////////////////////////////////////////////////////////////////////////
                if ($name = $this->ci->check_curl->checkFile(($link_2[$k][$i][0]))) {
                    $data['filename'][] = $name;
                }
///////////////////////////////////////////////////////////////////////////////////////////////////
            } 
            // $data['filename'] = $filename['filename'];
            $data[$plop] = $link_2[$k];
			$i++;
        }

Code : Tout sélectionner

[champ1] => Array ( [0] => Array ( [0] => url [1] => A pas check ) [1] => Array ( [0] => url [1] => A pas check ) ) [champ2] => Array ( [0] => Array ( [0] => url [1] => A pas check ) [1] => Array ( [0] => url [1] => A pas check ) ) [champ3] => Array ( [0] => Array ( [0] => url [1] => A pas check ) [1] => Array ( [0] => url [1] => A pas check ) )

Re: Double foreach, if..

Posté : 11 avr. 2012, 18:56
par xTG
Utilises des boucles for dont la condition respecte la valeur size() ou count() sur l'array plutôt que foreach().
Ainsi tu auras ton lien avec les index.
Si tu incrémentes de trop ça sortira de la boucle sans erreur.

Re: Double foreach, if..

Posté : 11 avr. 2012, 19:03
par binboum
Utilises des boucles for dont la condition respecte la valeur size() ou count() sur l'array plutôt que foreach().
Ainsi tu auras ton lien avec les index.
Si tu incrémentes de trop ça sortira de la boucle sans erreur.
J'ai un peu tout essayé, mon but c'est qu'il check d'abord le champ1 [Le nombre de valeur][0].

Si tu as 5 minutes, tu pourrais me sortir une ébauche car même avec 1h de travail je n'arrive toujours pas à sortir quelques choses de potable ..

Re: Double foreach, if..

Posté : 13 avr. 2012, 10:54
par sirakawa
1) De façon générale, foreach ne convient bien que quand on parcourt un tableau d'un bout à l'autre.
2) On démontre aisément que la seule boucle indispensable est la boucle while.
3) Un exemple de $array initial serait le bienvenu
4) Mets des print_r à chaque étape de la constitution de tes tableaux...