webForumDet fria alternativet

addslashes på en array mha rekursion

2 svar · 226 visningar · startad av Patrik81

Patrik81Medlem sedan okt. 2001538 inlägg
#1

Lagom lullig rubrik?

Hej, jag håller på och donar lite med ett script, och skulle behöva hjälp här, för nu har jag kört fast.

Jag har en array, som är av okänd storlek, denna array kan komma att innehålla fler arrayer, därav att jag kom att fundera på att använda rekursion. På alla värden lagrade i denna array, och värden i eventuella arrayer i denna, vill jag köra addslashes.

Och lite lat som jag är så skulle jag önska att jag slapp skriva en massa kod för att sedan lappa ihop arrayerna efter att jag kört addslashes på dem, så jag skulle vilja att allt hände "by reference", alltså hela det där köret med att man i princip definerar funktionen såhär:

filter(&$arr)

Koden jag hittills knåpat ihop, som dock inte fungerar så bra ser ut såhär:

function filter(&$miscArr)
{
    foreach ($miscArr as $chunks){
        if (is_array($chunks)){
            filter($chunks);
        } else {
            $chunks = addslashes($chunks);
        }
    }
}

if (isset($addArr) or is_array($addArr)){
    filter($addArr);
}

Alltså, om det i $addArr['namn'] ligger värdet Patr'ik
så:

echo($addArr['namn']); // Patr'ik
filter($addArr);
echo($addArr['namn']); // Patr\'ik

Typ... klockan är sent, och det känns som att jag kör huvudet i en betongvägg för jag får det inte att fungera, och har suttit och pillat nu en bra stund, så om hjäpl finnes att få så tar jag tacksamt emot den.

MVH Patrik

/r: stavfel...

MatteMedlem sedan aug. 20002 975 inlägg
#2

Du kan testa något på det här hållet:

function filter($miscArr)
{
    if (!is_array($miscArr)) {
       $miscArr = addslashes($miscArr);
       return $miscArr;
    }

    foreach ($miscArr as $key => $chunks){
        if (is_array($chunks)){
            $miscArr[$key] = filter($chunks);
        } else {
            $miscArr[$key] = addslashes($chunks);
        }
    }
    
    return $miscArr;
}

$addArr = filter($addArr);
Patrik81Medlem sedan okt. 2001538 inlägg
#3

Funkade ju helt underbart, och det kan jag väl leva med, antar jag, att inte definera funktionen med & tecknet.

Tack så jättemycket

MVH Patrik

131 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)