Zdravím, chtěl bych poprosit o pomoc zkušenější programátory. Mám nějaký string, kde je datum a nějaká hodnota. String má dakovouhle strukturu. DD.MM.YYYY|XX.XXX DD.MM.YYYY|XX.XXX DD.MM.YYYY.....
Chtěl bych pracovat nějak s hodnotami toho stringu v rámci měsíců. Asi nejlepší by bylo udělat si 12 polí podle měsíce a do pole leden přiřadit příslušné hodnoty. Hodnot je asi 300 a opravdu nevím, jak se k tomu dopracovat. Nejdál jsem se dostal k explode ('|', $string); ale dál nevidím východisko.
Jak dál pracovat se stringem v PHP
Re: Jak dál pracovat se stringem v PHP
Oddělovač "řádků" je spíš mezera, ne? Svislá čára vypadá jako oddělovač sloupců - tedy že XX.XXX se váže k datumu DD.MM.YYYY, které je před tím a oddelený tou svislou čarou? V podstatě bych nejdřív rozdělil řetězec na pole "řádků" / entit, a každý prvek pak dál rozdělil a zpracoval do použitelné podoby.
Kód: Vybrat vše
$vstupni_data = "DD.MM.YYYY|XX.XXX DD.MM.YYYY|XX.XXX DD.MM.YYYY|XX.XXX";
$radky = explode(" ", $vstupni_data);
$vystup = array_fill_keys(range(1, 12), array());
foreach ($radky as $radek) {
list ($datum, $hodnota) = explode("|", $radek);
$mesic = intval(substr($datum, 3, 2));
// nebo lze pouzit DateTime objekt pro zjisteni mesice
$dt = new \DateTime::createFromFormat("d.m.Y", $datum);
$mesic = (int) $dt -> format("n");
$vystup [$mesic] [$datum] = $hodnota;
// nebo
$vystup [$mesic] [] = [$datum => $hodnota];
// nebo pokud datum nebude dal potreba
$vystup [$mesic] [] = $hodnota
}
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů