Somme un array par clé

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
Configuration: Windows 2000
Internet Explorer 6.0

2 réponses

  1. Contributeur
    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
    1. 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

      Discussions similaires

      cle wifi pour tv

      5 réponses