IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Double foreach, if..


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Double foreach, if..
    Bonjour, je rencontre un soucis, je vais tacher d'expliquer au mieux.

    J'ai un tableau avec plusieurs champs dans l'exemple ci dessous nous avons champ1, champ2, champ3, qui sont détectés par le premier foreach.

    La deuxième serre à extraire les donner entre ";".

    C'est juste pour bien expliquer,

    Mon problème est le suivant,

    Le if ci dessous est censé ( dans l'exemple ) :

    Faire un check sur [champ1][0][1] et [champ1][1][0],

    Si une des valeurs retourné est vide alors il passe à [champ2][0][1] et [champ2][1][0].

    Si une des valeurs retourné est vide alors il passe à [champ3][0][1] et [champ3][1][0].

    Si bien sur tout est bon au premier check alors on arrête le IF !

    Merci beaucoup de m'aider, je vous en serais éternellement reconnaissant, vraiment, vraiment.. !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    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][Valeur inconu][0]))) {
                        $data['filename'][] = $name;
                    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////
                }
                // $data['filename'] = $filename['filename'];
                $data[$plop] = $link_2[$k];
            }

    [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
    )

    )

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 369
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 369
    Billets dans le blog
    17
    Par défaut
    Pas facile de comprendre la finalité
    Ce serait plus simple si tu donnais un extrait significatif de données en entrée et ce que tu souhaites en obtenir en sortie.

  3. #3
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Array
    (
        [site1] => Array
            (
                [0] => Array
                    (
                        [0] => http://fansub1.com/episode1
                    )
     
                [1] => Array
                    (
                        [0] => http://fansub1.com/episode2
                    )
     
            )
     
        [site2] => Array
            (
                [0] => Array
                    (
                        [0] => http://fansub2.com/episode1
                    )
     
                [1] => Array
                    (
                        [0] => http://fansub2.com/episode2
                    )
     
            )
     
        [site3] => Array
            (
                [0] => Array
                    (
                        [0] => http://fansub3.com/episode1
                    )
     
                [1] => Array
                    (
                        [0] => http://fansub3.com/episode2
                    )
     
            )
     
    )
    Le but c'est est de référencer les derniers vostfr sorti sur différent site de fansub.

    Le lien qu'on donne au if va chercher le nom de l'épisode sorti.

    Donc si je traduis :

    Il va sur le site1 check l'épisode 1 et 2 et si il n'arrive pas il passe à l'autre site.

    Merci de ton aide.

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 369
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 369
    Billets dans le blog
    17
    Par défaut
    Je ne pourrai pas t'aider si tu ne me donnes pas un exemple significatif de données en entrée (avant traitement) et ce que tu en attends en sortie (après traitement).

    En ce qui concerne le tableau, tu ne dis pas quel est son rôle et ni d'où il sort (est-il écrit en dur ? généré dynamiquement ? autre ?).
    Je peux juste dire qu'il m'a l'air inutilement compliqué, d'après ce que j'en vois on pourrait faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Array
    (
        [site1] => Array
            (
                [0] => http://fansub1.com/episode1
                [1] => http://fansub1.com/episode2
            )
        [site2] => Array
            (
                [0] => http://fansub2.com/episode1
                [1] => http://fansub2.com/episode2
            )
        [site3] => Array
            (
                [0] => http://fansub3.com/episode1
                [1] => http://fansub3.com/episode2
            )
    )
    ... mais bon, il y a peut-être des contraintes non précisées.

  5. #5
    Membre habitué
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    La valeur de $array :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
        [site1] => site1
        [site2] => site2
        [site3] => site3
    )
    Pour ce qui ai de ta correction non, puisque en fait il existe des liens supplémentaire extrait par le explode dans le deuxième foreach, qui eux ne sont pas à prendre en compte je dois juste les stocker, donc il faut bien rester dans la syntaxe que j'ai posté.

    La première boucle serre à généré la liste des sites, si il existe ou pas grâce à l'écriture ternaire.

    La deuxième extrait des liens supplémentaires.. qui doivent juste être stocker.

    Le if doit me donner le nom de épisode 1 et épisode 2.

    Au final mon array final doit compter le array qu'il y a en haut + les noms des 2 épisodes, il peut avoir plus d'épisode c'est juste que la yen a 2.

    $this->ci->check_curl->checkFile(); retourne le nom d'un épisode, il faut juste lui donner le link à manger.

    Le tableau que je t'ai donné c'est :

    $data[$plop] = $link_2[$k];

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 369
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 369
    Billets dans le blog
    17
    Par défaut
    J'ai l'impression que tu ne veux/peux pas fournir les infos demandées pour t'aider.
    Bon courage pour la suite
    A+

Discussions similaires

  1. Double foreach qui me retourne un résultat erronné
    Par beegees dans le forum Langage
    Réponses: 3
    Dernier message: 21/07/2014, 16h35
  2. [ZF 2.0.3] double foreach sur résultat de requête = bug
    Par efreet_cs dans le forum Zend Framework
    Réponses: 3
    Dernier message: 25/10/2012, 21h40
  3. [MySQL] Double foreach imbriqué
    Par MRJBGO dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/02/2012, 14h21
  4. [Tableaux] Foreach renvoie des valeurs double en php4
    Par Dantahoua dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2007, 18h49
  5. Réponses: 3
    Dernier message: 12/06/2002, 22h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo