Avatar billede lone_a_p Praktikant
04. november 2006 - 12:17 Der er 2 kommentarer og
1 løsning

speciel array-funktion

Jeg skal bruge en lidt speciel funktion, som skal fungere helt optimalt, da den benyttes rigtig mange gange i mit script

Det går ud på, at jeg har et array - f.eks. array(key1 => 1, key2 => 2, key3 => 3)

Herefter skal jeg have tilføjet en ny værdi: f.eks. key2 = 5

Resultatet i arrayet skal være, at key2 så bliver 7 (der skal altid adderes/lægges til)

Hvis nøglen key2 ikke fandtes i det første array, skal den nye værdi bare tilføjes.

Jeg har følgende egenproducerede funktion således:
function insert_into_and_add_in_array($array, $key, $value){
    if (array_key_exists($key, $array)){
        //NULL + NULL = NULL - når der lægges opskrifter oveni
    if ($array[$key] == NULL && $value == NULL) $array[$key] = NULL;
        else $array[$key] += $value;
    }
    else {
        $array[$key] = $value;
    }

    return $array;
}


Det fungerer, men meget langsommeligt.

Nogen bedre forslag, så hører jeg gerne.

Mvh Lone
Avatar billede lone_a_p Praktikant
04. november 2006 - 12:20 #1
Tror måske at dette vil se lidt mere overskueligt ud:

function insert_into_and_add_in_array($array, $key, $value){
    if (array_key_exists($key, $array)){
        if ($array[$key] == NULL && $value == NULL) $array[$key] = NULL;
        else $array[$key] += $value;
    }
    else {
        $array[$key] = $value;
    }

    return $array;
}
Avatar billede lone_a_p Praktikant
04. november 2006 - 12:21 #2
$key og $value kommer fra det array/de værdier, der skal lægges oveni det foregående $array
Avatar billede lone_a_p Praktikant
17. februar 2007 - 00:49 #3
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester