Somme un array par clé

tigre198 Messages postés 55 Statut Membre -  
tigre198 Messages postés 55 Statut Membre -
Bonjour,
y'a t'il pas fo,ction omme array sum mais qu'elle retourne somme total par clé
par exemlple

array1('clé1=>5, clé2=>9)
array1('clé1=>5, clé2=>9)

et donc j'auraus résultat

clé 1=10
clé2=18;

pour array sum elle donne résultat total des valeurs
A voir également:

2 réponses

Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

je n'ai pas trouvé de fonction spécifique mais si tu peux entrer tous tes tableaux dans un tableau global tu pourra toujours itérer dessus et faire ta somme.
0
tigre198 Messages postés 55 Statut Membre 9
 
salut
merçi pour ta réponse
j'ai cherhé et j'ai pas trouvé fonctions prédefinie
mais en ravanche j'ai trouvé ça
la fonction:
<?php
function array_sum_values() {
    $return = array();
    $intArgs = func_num_args();
    $arrArgs = func_get_args();
    if($intArgs < 1) trigger_error('Warning: Wrong parameter count for array_sum_values()', E_USER_WARNING);
    
    foreach($arrArgs as $arrItem) {
        if(!is_array($arrItem)) trigger_error('Warning: Wrong parameter values for array_sum_values()', E_USER_WARNING);
        foreach($arrItem as $k => $v) {
            $return[$k] += $v;
        }
    }
    return $return;
}
script:
$array1 = array('1'=>'1','2'=>'2','3'=>'3');
$array2 = array( '2'=>'1','3'=>'2','4'=>'3');
$array3 = array('3'=>'1','4'=>'22','5'=>'3');
print_r($array1 );
print_r($array2 );
print_r($array3 );
$array  = array_sum_values($array1, $array2, $array3) ;
print_r($array);
?>

si tu teste ça
tu aura come résultat:

Array ( [3] => 1 [4] => 22 [5] => 3 ) ...

c'est a dire il calcule somme par clé
mais en revanhe mon probleme est suivant:

si tu connais fonction qui se trouve deja dans la page fonction date() de manuel de php qui calcule nombre de jour
entre deux dates en excluant les jours feriées et dimanche
j'ai améliorer la fonction du fait j'affiche le nombre de jour par semaine mais je dois commencé de base sql

voiçi script
$sql = 'SELECT date_debut, date_fin FROM `table`';
$req = mysql_query($sql);
 $business_days=0;
while ($data = mysql_fetch_array($req))
{

   $business_days = $dates->days_diff($data['date_debut'], $data['date_fin']);
}
      echo '<pre>';
$array  = array_sum_values($business_days);

   echo '</pre>';


bien sur résultat sera que pour derniere ligne de la table

Array ( [0] => 0 [14] => 5[15] => 5[16] => 5 [17] =>5 [18] => 4 )

les clés est equivalent au numero de la semaine de l'année

j'ai essyé de stocké $business_days dans un autre array mais du coup fonction marchera plus

avant j'ai mis la requete sql et le calcul dans la fonction qui calcul nombre de jour
ça a marché mais pour le temps d'executionc'est trop 4 secondes pour 2000 lignes le probeleme dans la meme page je dois afficher tableau de dtaes par semaines mais aussi par type donc 5 fois
alors ça sera 20 secondes.
bref j'espere que t'a compris probleme
cordialement
0