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 :

[Tableaux] array_push ou problème d'algo ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut [Tableaux] array_push ou problème d'algo ?
    Bonjour à tou(te)s,

    j'ai un petit probleme avec cette fonction :

    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
     
    function quadri()
    {
     
    	for($i=0;$i<70;$i++)
    	{
    		$stf = 0;$sf=0;$sm=0;$sfort = 0;
    		echo("<br /> quadri : \$_SESSION[\"lesCanaux\"][$i]->maxi : ".$_SESSION["lesCanaux"][$i]->maxi);
    		if(isset($_SESSION["lesCanaux"][$i]->maxi))
    		{$valeur = $_SESSION["lesCanaux"][$i]->maxi;}else{$valeur = 666;}
    		if(($_SESSION["lesCanaux"][$i]->maxi >=$_SESSION["seuilPrecoef"])&&($_SESSION["lesCanaux"][$i]->maxi <$_SESSION["RisqueFaible"]))
    		{array_push($_SESSION['spectretfaible'],$valeur);
    		array_push($_SESSION['spectrefaible'],"0");array_push($_SESSION['spectremoyen'],"0");array_push($_SESSION['spectrefort'],"0");echo("<br /> le canal $i a un risque tres faible : ".$_SESSION['spectretfaible'][count($_SESSION['spectretfaible'])-1]);}
     
    		elseif(($_SESSION["lesCanaux"][$i]->maxi >$_SESSION["RisqueFaible"])&&($_SESSION["lesCanaux"][$i]->maxi <= $_SESSION["RisqueMoyen"]))
    		{array_push($_SESSION['spectretfaible'],"0");array_push($_SESSION['spectrefaible'],$valeur);array_push($_SESSION['spectremoyen'],"0");array_push($_SESSION['spectrefort'],"0");echo("<br /> le canal $i a un risque faible : ".$_SESSION['spectrefaible'][count($_SESSION['spectrefaible'])-1]);}
     
    		elseif(($_SESSION["lesCanaux"][$i]->maxi >$_SESSION["RisqueMoyen"])&&($_SESSION["lesCanaux"][$i]->maxi <= $_SESSION["RisqueFort"]))
    		{array_push($_SESSION['spectretfaible'],"0");array_push($_SESSION['spectrefaible'],"0");array_push($_SESSION['spectremoyen'],$valeur);array_push($_SESSION['spectrefort'],"0");echo("<br /> le canal $i a un risque moyen : ".$_SESSION['spectremoyen'][count($_SESSION['spectremoyen'])-1]);}
     
    		elseif(($_SESSION["lesCanaux"][$i]->maxi >$_SESSION["RisqueFort"]))
    		{array_push($_SESSION['spectretfaible'],"0");array_push($_SESSION['spectrefaible'],"0");array_push($_SESSION['spectremoyen'],"0");array_push($_SESSION['spectrefort'],$valeur);echo("<br /> le canal $i a un risque fort : ".$_SESSION['spectrefort'][count($_SESSION['spectrefort']-1)-1]);}
    		else{echo("<br />probleme quadri $i");}	
    	}
    }
    bien sur, tous les $_SESSION[quelquechose] ont été déclarés en array, j'ai testé avec un $_SESSION["lesCanaux"][$i] non vide que la fonction est censée trier, j'ai aucun message d'erreur et les 4 tableaux censés résulter de ce tri sont vides aulieu d'etre remplis. Est ce que j'utilise mal array_push ?
    Merci de votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Je demande pas si le principe de faire un array_push() dans un tableau dans une variable de session marche ou pas, je parle en particulier de ta fonction la.
    en l'ocurrence, tu fais un if pour savoir si la valeur est bien affectée isset($_SESSION["lesCanaux"][$i]->maxi) mais dans les deux cas (affectée ou non) tu fais des comparaisons apres sur cette valeur.

    Commences donc, si tu ne veux pas remplacer l'utilisation de $_SESSION[] par autre chose, par faire des echo dans chaque if pour vérifier que tu rentres bien dans les conditions souhaitées. De meme, fait un print_r($_SESSION); au début pour vérifier que ton tableau est bien rempli.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    merci je teste ça ^^

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Bon, c'est cool, rien qu'avec des tableaux ça marche, maintenant faut que je trouve comment recopier les tableaux que j'obtiens dans les tableaux de session :

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    function quadri()
    {
        $sfaible = array();
    	$sfort=array();
    	$stresfaible=array();
    	$smoyen = array();
    	echo("<br /> PRINTR<br />");
    	print_r($_SESSION);
    	echo("<br /> PRINTR<br />");
    	for($i=0;$i<70;$i++)
    	{
     
    		echo("<br /> quadri : \$_SESSION[\"lesCanaux\"][$i]->maxi : ".$_SESSION["lesCanaux"][$i]->maxi);
    		if(isset($_SESSION["lesCanaux"][$i]->maxi))
    		{$valeur = $_SESSION["lesCanaux"][$i]->maxi;}else{$valeur = "erreur_valeur";}
    		if(($_SESSION["lesCanaux"][$i]->maxi >=$_SESSION["seuilPrecoef"])&&($_SESSION["lesCanaux"][$i]->maxi <$_SESSION["RisqueFaible"]))
    		{array_push($stresfaible,$valeur);
    		array_push($sfaible,"0");array_push($smoyen,"0");array_push($sfort,"0");echo("<br /> le canal $i a un risque tres faible : ".$stresfaible[count($stresfaible)-1]);}
     
    		elseif(($_SESSION["lesCanaux"][$i]->maxi >$_SESSION["RisqueFaible"])&&($_SESSION["lesCanaux"][$i]->maxi <= $_SESSION["RisqueMoyen"]))
    		{array_push($stresfaible,"0");array_push($sfaible,$valeur);array_push($smoyen,"0");array_push($sfort,"0");echo("<br /> le canal $i a un risque faible : ".$sfaible[count($sfaible)-1]);}
     
    		elseif(($_SESSION["lesCanaux"][$i]->maxi >$_SESSION["RisqueMoyen"])&&($_SESSION["lesCanaux"][$i]->maxi <= $_SESSION["RisqueFort"]))
    		{array_push($stresfaible,"0");array_push($sfaible,"0");array_push($smoyen,$valeur);array_push($sfort,"0");echo("<br /> le canal $i a un risque moyen : ".$_SESSION['spectremoyen'][count($smoyen)-1]);}
     
    		elseif(($_SESSION["lesCanaux"][$i]->maxi >$_SESSION["RisqueFort"]))
    		{array_push($stresfaible,"0");array_push($sfaible,"0");array_push($smoyen,"0");array_push($sfort,$valeur);echo("<br /> le canal $i a un risque fort : ".$sfort[count($sfort)-1]);}
    		else{echo("<br />probleme quadri $i");}	
    	}
     
    	echo("<br /> tres faible :");
    	for($i=0;$i<count($stresfaible);$i++)
    	{
    		echo("<br /> ".$stresfaible[$i]);
    	}
     
    	echo("<br /> faible :");
    	for($i=0;$i<count($sfaible);$i++)
    	{
    		echo("<br /> ".$sfaible[$i]);
    	}
    	echo("<br /> moyen :");
    	for($i=0;$i<count($smoyen);$i++)
    	{
    		echo("<br /> ".$smoyen[$i]);
    	}
    	echo("<br /> fort :");
    	for($i=0;$i<count($sfort);$i++)
    	{
    		echo("<br /> ".$sfort[$i]);
    	}
    }
    ça, ça marche, mes 4 array sont bien remplis mais je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['blabla'] = array();
    $_SESSION['blabla'] = $sfort;
    mon $_SESSION['blabla'] reste vide. Quelqu'un peut il m'indiquer où je faute ?

    encore merci à tou(te)s ^^

  5. #5
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($i=0;$i<count($sfort);$i++)
    {
    $_SESSION['blabla'][$i]	= $sfort[$i];
    }
    Et comme ça ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    évidemment ^^ je voulais éviter d'en arriver là. merci

Discussions similaires

  1. Problème passage algo en VB
    Par franck1001 dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 05/12/2007, 09h14
  2. [Tableaux] array_push() erreur sur serveur
    Par Givemefive dans le forum Langage
    Réponses: 3
    Dernier message: 15/01/2007, 16h26
  3. Petit problème d'algo
    Par RodEpsi dans le forum Delphi
    Réponses: 5
    Dernier message: 01/08/2006, 15h30
  4. [Tableaux] Espace membre - Problème de permissions
    Par yongblood dans le forum Langage
    Réponses: 6
    Dernier message: 22/06/2006, 18h32
  5. un petit problème d'algo
    Par supertramp dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 12/10/2004, 20h13

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