1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <?php
//tableau ou ref et date sont dans le désordre
$data = array(
0 => array('ref' => 'REF01', 'date' => 'janvier', 'valeur' => 1000),
1 => array('ref' => 'REF01', 'date' => 'janvier', 'valeur' => 245),
2 => array('ref' => 'REF01', 'date' => 'janvier', 'valeur' => 54),
3 => array('ref' => 'REF01', 'date' => 'mai', 'valeur' => 1000),
4 => array('ref' => 'REF01', 'date' => 'juillet', 'valeur' => 1000),
5 => array('ref' => 'REF01', 'date' => 'novembre', 'valeur' => 1000),
6 => array('ref' => 'REF01', 'date' => 'decembre', 'valeur' => 1000),
7 => array('ref' => 'REF02', 'date' => 'mars', 'valeur' => 1000),
8 => array('ref' => 'REF03', 'date' => 'janvier', 'valeur' => 1000),
9 => array('ref' => 'REF46', 'date' => 'novembre', 'valeur' => 1000),
10 => array('ref' => 'REF03', 'date' => 'decembre', 'valeur' => 1000),
11 => array('ref' => 'REF04', 'date' => 'janvier', 'valeur' => 1000),
12 => array('ref' => 'REF04', 'date' => 'janvier', 'valeur' => 1000),
13 => array('ref' => 'REF04', 'date' => 'novembre', 'valeur' => 1000),
14 => array('ref' => 'REF10', 'date' => 'février', 'valeur' => 1000),
15 => array('ref' => 'REF10', 'date' => 'mars', 'valeur' => 1000),
16 => array('ref' => 'REF10', 'date' => 'avril', 'valeur' => 1000),
17 => array('ref' => 'REF02', 'date' => 'janvier', 'valeur' => 700),
18 => array('ref' => 'REF24', 'date' => 'octobre', 'valeur' => 1000),
19 => array('ref' => 'REF25', 'date' => 'novembre', 'valeur' => 1000),
20 => array('ref' => 'REF30', 'date' => 'juin', 'valeur' => 1000),
21 => array('ref' => 'REF30', 'date' => 'juillet', 'valeur' => 1000),
22 => array('ref' => 'REF30', 'date' => 'août', 'valeur' => 1000),
23 => array('ref' => 'REF30', 'date' => 'septembre', 'valeur' => 1000),
24 => array('ref' => 'REF30', 'date' => 'octobre', 'valeur' => 1000),
25 => array('ref' => 'REF30', 'date' => 'novembre', 'valeur' => 1000)
);
$keys=array('ref','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
$refs=array_column($data,'ref');
$refs=array_unique($refs);
sort($refs);
$cumuls=array();
$i=0;
foreach($refs as $ref){
foreach($keys as $key){
if($key=='ref'){
$cumuls[$i]['ref']=$ref;
}
else{
$cumuls[$i][$key]=0;
}
foreach($data as $row){
if($row['ref']==$ref && $row['date']==$key){
$cumuls[$i][$key]+=$row['valeur'];
}
}
}
$i++;
}
echo '<pre>';
print_r($cumuls);
echo '</pre>'; |
Partager