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 :

problème avec array_diff/array_diff_ assoc


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut problème avec array_diff/array_diff_ assoc
    Bonjour,

    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
     
    	$tmpcaddy = $boutique->addSessionCaddy($_POST);
    	if($tmpcaddy['prix']>0) {	  	 
    	 if(count($_SESSION['caddy'])>0) {
    	 	foreach($_SESSION['caddy'] as $idcaddy => $caddy) {
    		 	$result = array_diff($tmpcaddy, $caddy); 	 
    				if(count($result)==0 || (count($result)==1 && isset($result['unite']))) {
    					$_SESSION['caddy'][$idcaddy]['unite']=$_SESSION['caddy'][$idcaddy]['unite']+$tmpcaddy['unite'];
    				}
    				else
    				{
    					$_SESSION['caddy'][] = $tmpcaddy;
    				}
    		}
    	}
    	else
    	{   
    		$_SESSION['caddy'][] = $tmpcaddy;
    	}
    dans $_SESSION['caddy'] ce trouve les produits déjà sélectionner.
    dans $tmpcaddy le même array avec un nouveau produit.

    le but étant de comparer les tableaux, et au lieu d'ajouter une nouvelle entrée si le produit existe déjà, juste additionner les quantités de produit $tmpcaddy au $_SESSION['caddy'] déjà existant.

    au début le code marche, mais après plusieurs testes, il ajoute des doublons de produits et je ne trouve pas comment ce fesse t'il

    si quelqu’un pouvez m'aiguiller ?
    merci

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    peux-tu nous montrer un exemple complet de la structure de $tmpCaddy et $_SESSION['caddy'] ? car ton code me semble bien compliqué

    Un petit exemple :

    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
    $_SESSION['caddy'][8] = array('prix' => 12, 'unite' => 5);
    $_SESSION['caddy'][152] = array('prix' => 15, 'unite' => 9);
     
    $tmpcaddy[152]['prix'] = 15;
    $tmpcaddy[152]['unite'] = 8;
     
     
    foreach($tmpcaddy as $idItem => $data) {
        if(isset($_SESSION['caddy'][$idItem])) {
            $_SESSION['caddy'][$idItem]['unite'] += $data['unite'];
        }
        else    {
            $_SESSION['caddy'][$idItem] = $data;
        }
    }

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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