Fusion de deux tableaux php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fusion de deux tableaux php

Re: Fusion de deux tableaux php

par FredoMkb » 08 avr. 2013, 11:55

@ FredoMkb aucun de tres résultats ne retourne le résultat attendu, de plus il indique bien que array_merge ne lui convient pas que les clefs ne sont pas gardées.
@moogli : n'ayant pas vraiment bien compris sa question, je n'ai pas cherché à apporter une solution exacte à son problème, mais juste lui montrer la différence entre opérateur et fonction, histoire de faire avancer un peu les choses (enfin, tenter de les faire avancer)...

:)

Re: Fusion de deux tableaux php

par anonime » 08 avr. 2013, 11:42

Mercii!! Ja vais tester ton code @moogli

Re: Fusion de deux tableaux php

par moogli » 08 avr. 2013, 11:27

et j'ai besoin de faire la somme des valeurs selon les dates.
a priori il veux la somme des valeurs en fonctions des clefs, donc sauf s'il existe une fonction native qui le fait osef des merge !

@+

Re: Fusion de deux tableaux php

par edison1986 » 08 avr. 2013, 11:23

Salut,

array_merge() concerve les clé mais si tes tableaux ont des clé en commun celle du premier tableau seront écrasé par celle du second.
Tu n'a pas le choix un tableau ne peux avoir des clé en double, c'est impossible...
Regarde si tu veux la déscription de la fonction: http://www.php.net/manual/fr/function.array-merge.php

Tu peux essayer de faire quelque chose avec cette fonction pour modifier les clés en commun : array_intersect_assoc()
Le descriptif de la fonction: http://www.php.net/manual/fr/function.a ... -assoc.php

Re: Fusion de deux tableaux php

par moogli » 08 avr. 2013, 11:18

salut,

@ FredoMkb aucun de tres résultats ne retourne le résultat attendu, de plus il indique bien que array_merge ne lui convient pas que les clefs ne sont pas gardées.

@anonime
utilise forerach pour parcourir tes tableaux et générer un tableau résultat avec les sommes.

par exemple
<?php
$tab1=[];
$tab2=[];
$resultat = [];

foreach($tab1 as $date => $value) {
if(isset($resultat[$date])) {
    $resultat[$date] += $value;
}
else {
    $resultat[$date] = $value;

}
// l'index existe forcément a cause du if / else précédent
if (isset($tab2[$date])) {
    $resultat[$date] += $tab2[$date];
}
}
}
@+

Re: Fusion de deux tableaux php

par FredoMkb » 08 avr. 2013, 11:13

Bonjour :)

Ta question n'est pas assez claire malheureusement, voici vite fait deux solutions, donnant des résultats différents.

Soit les deux tableaux "$a1" et "$a2" comme suit :
$a1['01'] = '11';
$a1['02'] = '12';
$a1['03'] = '13';
$a1['04'] = '14';

$a2['01'] = '21';
$a2['03'] = '22';
$a2['05'] = '23';
$a2['07'] = '24';
1. Solution avec opérateur "+" :
print_r($a1 + $a2);
/*
Array
(
    [01] => 11
    [02] => 12
    [03] => 13
    [04] => 14
    [05] => 23
    [07] => 24
)
*/
2. Solution avec la fonction "array_merge" :
print_r(array_merge($a1, $a2));
/*
Array
(
    [01] => 21
    [02] => 12
    [03] => 22
    [04] => 14
    [05] => 23
    [07] => 24
)
*/
J'espère que ça pourra t'aider un peu... :)

Re: Fusion de deux tableaux php

par anonime » 08 avr. 2013, 10:42

Le problème est que je ne peux pas utiliser la fonction merge car elle écrase les id. et j'ai besoin de faire la somme des valeurs selon les dates.

Fusion de deux tableaux php

par anonime » 08 avr. 2013, 10:28

Je suis débutant en php et je voudrais fusionner 2 tableaux. Mon tableaux a la structure suivant :

[01/02/2013] =>150
[02/02/2013] =>100
[03/02/2013] =>240
...
[28/02/2013] =>960

Merci.