Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[php] Array -> Variabelen

Barus
4 antwoorden
  • Hallo,

    Ik gebruik de volgende functie:

    [code:1:9c8f53123a]function string2array ($string, $template){
    #search defined dividers
    preg_match_all ("|%(.+)%|U", $template, $template_matches);
    #replace dividers with "real dividers"
    $template = preg_replace ("|%(.+)%|U", "(.+)", $template);
    #search matches
    preg_match ("|" . $template . "|", $string, $string_matches);
    #[template_match] => $string_match
    foreach ($template_matches[1] as $key => $value){
    $output[$value] = $string_matches[($key + 1)];
    }
    return $output;
    }
    $data = 'Server1 (Company1) - 192.168.2.11 - Disk size agent C: : Test failed, Access denied ';
    $data2 = '%server% \(%company%\) - %ip% - %agent% : %warning%';

    echo " <br />";
    print_r (string2array ($data, $data2));[/code:1:9c8f53123a]

    Dit levert de volgende array op:

    [code:1:9c8f53123a]
    Array
    (
    [server] => SERVER1
    [company] => Company1
    [ip] => 192.168.2.11
    [agent] => Disk size agent C:
    [warning] => Test failed, Access denied
    )
    [/code:1:9c8f53123a]

    Mijn vraag: Is het mogelijk de inhoud van de array om te zetten in individuele waardes? (voorbeeld: $server = Server1)

    Ben al en tijdje aan het zoeken, maar kom er niet uit.

    Alvast bedankt!

    - barus
  • Waarschijnlijk zal het wel lukken met dynamische variabelen, maar waarom wil je dit eigenlijk? Je kan de array toch ook gewoon op de associatieve index aanspreken; ik zie het nut dus niet zo van deze conversie.

    Uit de losse pols (geen idee of dit werkt):
    [code:1:8dd25ce40c]
    foreach ($array as $key => $val)
    {
    ${$key} = $val;
    }
    [/code:1:8dd25ce40c]
  • [quote:e77243fde2="Annie"]Waarschijnlijk zal het wel lukken met dynamische variabelen, maar waarom wil je dit eigenlijk? Je kan de array toch ook gewoon op de associatieve index aanspreken; ik zie het nut dus niet zo van deze conversie.
    [/quote:e77243fde2]

    Dit is nodig om deze waardes in een database te zetten.

    Hoe kan ik dit doen?

    Barus
  • Een array benader je op index, dus $array[numerieke_index] of $array["associatieve_index"].

    Het wordt dus iets als:
    [code:1:f5f1038ae9]
    $arr = string2array ($data, $data2);

    $sql = "insert into tabelletje (kolom1, kolom2) "
    . "values ('" . $arr["server"] . "', '" . $arr["company"] . "')";
    [/code:1:f5f1038ae9]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.