17-03-2011, 09:40 PM
Le problème de ton bout de code, c'est qu'on ne voit pas où tu veux en venir. Tu "perds" le développeur dans des tests inutiles.
Quand tu écris une fonction, essaye d'afficher ton intention. Regarde celle-ci :
Ici, on entre tout de suite dans le vif du sujet. On initialise un tableau de résultat, puis on parcourt chaque tableau d'attributs transmis (force de cette fonction : tu peux lui donner autant de tableaux que tu veux), puis on ajoute l'attribut au tableau, en augmentant sa valeur si l'attribut est déjà présent.
Sephi-Chan
function array_fusion_and_add($array1, $array2){
$result = array();
if(count($array1) > 0){
$result = $array1;
if(count($array2) > 0){
foreach($array2 as $key => $t){
if(isset($result[$key])) $result[$key] += $t;
else $result[$key] = $t;
}
}
}
return($result);
}
Quand tu écris une fonction, essaye d'afficher ton intention. Regarde celle-ci :
function array_melt(){
$result = array();
foreach(func_get_args() as $array){
foreach($array as $attribute => $value){
$result[$attribute] += $value;
}
}
return $result;
}
Ici, on entre tout de suite dans le vif du sujet. On initialise un tableau de résultat, puis on parcourt chaque tableau d'attributs transmis (force de cette fonction : tu peux lui donner autant de tableaux que tu veux), puis on ajoute l'attribut au tableau, en augmentant sa valeur si l'attribut est déjà présent.
Sephi-Chan