Autor Zpráva
srigi
Profil
Hello, mam pole:
Array
(
    [name_cz] => CZ:Rovné
    [desc_cz] => CZ:Rovné krby s rovním čelním sklem
    [name_sk] => SK:Rovné
    [desc_sk] => SK:Rovné krby s rovným čelným sklom
)

Pole by som potreboval preusporiadat do formy:
Array
(
    [cz] => Array
            (
                [name] => CZ:Rovné
                [desc] => CZ:Rovné krby s rovním čelním sklem
            )

    [sk] => Array
            (
                [name] => SK:Rovné
                [desc] => SK:Rovné krby s rovným čelným sklom
            )
)

Problem je ze pocet jazykov moze "variovat", takze to musi preukladat dynamicky v zavislosti od vstupneho pola. Malou vyhodou je, ze pocet poloziek v ramci jedneho jazyka je vzdy rovny dvom. Pre odvazlivca co sa mi rozhodne pomoct, mam pomocku v podobe regularneho vyrazu pre extrahovanie jazyka a polozky zo vstupneho pola:
foreach ($input_array as $key => $value) {
    preg_match('/^([A-Za-z]+)_([A-Z]{2})$/i', $key, $matches);
    $lang = $matches[2];
    $item = $matches[1];
    ...
}


Za pomoc dakujem.
tiso
Profil
srigi
//$in  vstupne pole
$out=array();//vystupne pole
foreach($in as $key => $val){
  $lang=substr($key, -2);
  $key=substr($key, 0, -3);
  $out[$lang][$key]=$val;
}
srigi
Profil
tiso
THX, funguje to dobre, regular ale ponecham, lebo sa jedna o POST udaje, teda veci ktore treba validovat. Este raz THX.
tiso
Profil
srigi - tak potom ti stačí dať miesto ...
$out[$lang][$item]=$value;

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:

0