Autor Zpráva
nethor
Profil
Zdravím,
ve formuláři mám (z důvodu dalšího zpracování) vstupy pojmenované tímto způsobem:
<textarea name="new[0][Text]"></textarea>
<input type="checkbox"  name="new[0][Display]">
...

Po odeslání jsou v $_POST ve vícerozměrném poli
$_POST["new"][0]["Text"]
$_POST["new"][0]["Display"]

Je v PHP nějaká funkce, která by vracela hodnotu podle param name ?
Něco jako $value = GetValueFromPost("new[0][Text]") ;

Samozřejmě jde napsat; rozparsovat name a rekurzí získat hodnotu z $_POST,
ale nechci na to jít zbytečně obklikou.
juriad
Profil
<?php

function getFromArray($array, $key) { # zruš první parametr
        # toto jsem trochu zjednodušil oproti původní verzi v [#3]
        $keys = preg_split('/[][]/', $key, -1, PREG_SPLIT_NO_EMPTY);

        $val = $array; # nahraď za $_POST
        foreach ($keys as $k) {
                $val = $val[$k];
        }
        return $val;
}

$a["new"][0]["Text"] = "A";
$a["new"][0]["Display"] = "B";

echo getFromArray($a, "new[0][Text]");

Tady máš funkci, která to dělá nad obecným polem; upravit to snad dokážeš.
nethor
Profil
juriad:
Pěkný. Díky.


... kdyby se to někomu hodilo:
function GetValueFromPost($key) { 
    preg_match_all('/[^][]+/', $key, $results);
    $keys = $results[0];
    $val = $_POST;
    foreach ($keys as $k) {
        $val = $val[$k];
    }
    return $val;
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: