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 :

Tableau et clé impaire


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    Par défaut Tableau et clé impaire
    Bonjour,

    J'ai un tableau à deux dimension de ce genre :
    [48] => Array ( [0] => >11h33< [1] => 11h33 ) [49] => Array ( [0] => >< [1] => ) [50] => Array ( [0] => >5h22< [1] => 5h22 ) [51] => Array ( [0] => >10h55< [1] => 10h55 ) [52] => Array ( [0] => >< [1] => ) [53] => Array ( [0] => >96< [1] => 96 )
    Je cherche à faire une boucle pour savoir si chaque valeur de clé impaire contient une valeur sur $montableu[cléimpair][1] ou non.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et qu'est ce qui te pose problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    En faite, pour la boucle ça va, le contrôle si c'est vide ou non c'est bon mais je ne sais pas pour le faire boucler tout le temps que le tableau est remplit et que si c'est impaire...

  4. #4
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Si tu as une borne de début et une borne de fin je verrais bien un truc comme :

    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
     
    $i = $borne_debut;
    $ok = true;
    while($i <= $borne_fin && $ok) {
      if($i % 2 != 0) {  //si la clé est bien impaire
        if(!isset($mon_tableau[$i][1])) {  //si ma valeur n'existe pas, je sortirai de la boucle
          $ok = false;
        }
        else { //sinon je vais voir la valeur correspondant à la prochaine clé impaire
           $i += 2;
        }
      }
      else { //si la clé n'est pas impaire, je passe à la suivante qui le sera
         $i++;
      }
    }
    Et quand tu sortiras de la boucle, si $ok est true, c'est que toutes les valeurs des clés impaires existent.

    Si ça ne va pas, n'hésites pas à donner des précisions

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Merci pour ton aide mais je ne connais pas les bornes de mon tableau.
    En faite, je voudrais boucler tant que je trouve des entrés impaire vide et stoper nette dès que j'ai une clé impair non vide et retourné la valeur de cette clé impaire :

    J'ai testé ça, cela fonctionne mais le exit arrete l'exécution de tout le reste du PHP de la page...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    for ($i=41; $i<count($matches); $i++) {
     
        if (!empty($matches[$i][1])) {
        echo "I ".$i;
        exit();
        }
        $i++;
     
    }

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    bonsoir,

    ce n'est pas exit (qui arrete l'exécution de ton script en entier) mais break qu'il faut mettre

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut

    Tu peux essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function isArrayOk(array $p) {
    	foreach ($p as $key => $ar) {
    		if (($key % 2) && (isset($ar[1]))) return $ar[1];
    	}
    }
    ou sans passer par une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $foreach ($array as $key => $ar) {
    	if (($key % 2) && (isset($ar[1]))) { $value = $ar[1]; break; }
    }

  8. #8
    Membre averti Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Points : 300
    Points
    300
    Par défaut
    Bien dit Madfrix,

    il te faut un break ou ajouter une condition pour que ta boucle for "arrête"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    for ($i=41, $found = false; $i<count($matches) && $found ===false; $i+=2) {
        if (!empty($matches[$i][1])) $found = $i;
    }
    Normalement ça doit marcher
    C'est en faisant n'importe quoi qu'on devient n'importe qui

Discussions similaires

  1. Extraire le nombre minimum impair d'un tableau
    Par just1smash dans le forum Débuter
    Réponses: 6
    Dernier message: 23/11/2012, 16h15
  2. Inverses les lignes impaires d'un tableau de points
    Par AliFirat91 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 16/12/2011, 13h52
  3. [Turbo Pascal] Nombres pairs et impairs dans un tableau
    Par 159753 dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 18/03/2009, 16h48
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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