Page 1 sur 1

[ Tableau ] Regrouper 2 lignes identiques

Posté : 28 avr. 2009, 12:14
par VaN
Bonjour,

Sur la création d'un panier, je suis confronté à un problème. J'aimerai boucler sur mon panier, et regrouper 2 lignes ensemble, si elles sont identiques.

Voici un exemple, du tableau $_SESSION["panier"] :
Array ( 
[packs] => Array ( 
    [0] => Array ( 
        [pack_id] => 1 
        [pack_name] => Vente 
        [pack_price] => 249 
        [inserted] => 0 
        [options] => Array ( 
            [0] => Array ( 
                [option_id] => 1 
                [option_name] => Panneau personnalisé 
                [option_price] => 0 
            ) 
            [1] => Array ( 
                [option_id] => 4 
                [option_name] => Mailing de situation A VENDRE 
                [option_price] => 50 
            ) 
        ) 
        [quantite] => 1 
        ) 
    ) 
    [1] => Array ( 
        [pack_id] => 1 
        [pack_name] => Vente 
        [pack_price] => 249 
        [inserted] => 0 
        [options] => Array ( 
            [0] => Array ( 
                [option_id] => 1 
                [option_name] => Panneau personnalisé 
                [option_price] => 0 
            ) 
        ) 
        [quantite] => 1 
        ) 
    ) 
    [2] => Array ( 
        [pack_id] => 1 
        [pack_name] => Vente 
        [pack_price] => 249 
        [inserted] => 0 
        [options] => Array ( 
            [0] => Array ( 
                [option_id] => 1 
                [option_name] => Panneau personnalisé 
                [option_price] => 0 
            ) 
            [1] => Array ( 
                [option_id] => 4 
                [option_name] => Mailing de situation A VENDRE 
                [option_price] => 50 
            ) 
        ) 
        [quantite] => 1 
        ) 
    )
    [total] => Array ( 
        [ht] => 548 
        [ttc] => 655.41 
    ) 
) 
Dans ce tableau, la ligne pack[0] et la ligne pack[2] sont absolument identiques.
J'aimerai donc les fusionner, tout en modifiant la variable pack[quantite]

Existe t'il une fonction PHP qui me permetttrait de faire ce genre de chose ?
Si non, comment dois-je m'y prendre ?

Re: [ Tableau ] Regrouper 2 lignes identiques

Posté : 28 avr. 2009, 13:02
par Truc
Si non, comment dois-je m'y prendre ?
éviter de te retrouver dans ce genre de situations ?
vérifier à la création d'une entrée si elle existe déjà ou pas :-k

Re: [ Tableau ] Regrouper 2 lignes identiques

Posté : 28 avr. 2009, 13:09
par sylvaing26
vérifier à la création d'une entrée si elle existe déjà ou pas :-k
J'adhère aussi pour ta solution,
verifier si l'entrée existe, si oui il lui ajoute la quantitée renseignée à celle qui est deja dans le pannier

Posté : 28 avr. 2009, 13:53
par Nagol
d'accord avec les deux réponses précédentes mais tu peux faire des comparaisons globales de tableaux avec un serialize pour éviter d'avoir des doublons parfait, ca fonctionnerais.

Posté : 28 avr. 2009, 16:43
par VaN
Comment faire ? Le tableau $_POST que je reçois sur ma page n'a pas du tout la même architecture que le tableau du panier.

Et dans le cas ou je reformate mon tableau $_POST, pour qu'il ait la meme architecture que mon tableau de panier, que je fasse une comparaison entre les 2 tableaux, comment puis-je savoir à quelle ligne correspond mon tableau passé en $_POST ?

Posté : 28 avr. 2009, 20:03
par houlahoup
Une solution très simple, serait de serialiser, dédoublonner et désérialiser ;)
$tab = array(1=>array(10, 20), 2=>array(30, 50), 3=>array(10, 20));

$newTab = array_map('unserialize', array_unique(array_map('serialize', $tab)));
Tu perds les index du tableau, mais je ne pense pas que tu en es besoin.