Autor Zpráva
PPetr
Profil *
Ahoj, poradí prosím někdo zkušený v php, jak napsat podmínku pro vypsání poslední hodnoty v poli?
Mám takové pole
$arr = array(0=>'aaa',1=>'bbb',2=>'ccc',3=>'page-19');
a potřebuji vypsat poslední hodnotu (bez "page-"),
když poslední hodnota v poli odpovídá zadání "page" a "-" a "jakekoliv číslo vetší > 0" jinak $err = '1';
Děkuji za případnou pomoc
Taps
Profil
PPetr:
<?
$arr = array(0=>'aaa',1=>'bbb',2=>'ccc',3=>'page-19');
$hodnota = array_pop($arr);

if(preg_match('~[1-9]{2}~',$hodnota,$vystup)){
echo $vystup[0];
}

?>
Kcko
Profil
    $arr = array(0=>'aaa',1=>'bbb',2=>'ccc',3=>'page-19');


    echo getLastItem($arr) ? '1' : '0';


    function getLastItem(array $arr)
    {
        $last = end($arr);
        if (strpos($last, 'page-') !== FALSE)
        {
            list(, $num) = explode('page-', $last);
            $num = (int) $num;

            return $num > 0 ? TRUE : FALSE;
        }

        return FALSE;
    }
PPetr
Profil *
Taps:
Díky moc, vypadá to jednouše, já co jsem sesmolil bylo na 50 řádků :-) a ještě to nefungovalo. Bylo ny prosím možno tvůj příklad opravit, aby script vrátit chybu, aby čísla nezačínala 0 ? Děkuji


Taps:
Teď se ještě dívám, že to bere z jakým koliv textem před lomítkem :-( page-19, pages-19, nic-19... což mi nepomůže, page je klíčové slovo, podle něj poznám, že se jedná o stránkování :-( Díky
Joker
Profil
PPetr:
Teď se ještě dívám, že to bere z jakým koliv textem před lomítkem
Protože v dotazu takový požadavek nebyl a telepatii zatím neovládáme.

Já osobně bych udělal explode přes pomlčku a pak porovnal, jestli první prvek je "page" a vzal druhý.
PPetr
Profil *
Joker:
Protože v dotazu takový požadavek nebyl a telepatii zatím neovládáme.
Ano, nebyl, jelikož jsem nevěděl, že php bere číslo 019 jako číslo :-( Omlouvám se..
Taps
Profil
PPetr:
Tak zkus přesněji vydefinovat požadavky
PPetr
Profil *
Taps:
Tak jak jsi mi to napsal, s tím, že pokud poslední hodnota v tom poli bude

získat číslo při správném zapisu z poslední hodnoty pole: (page, pomlčka, číslo nezačínající nulou)
page-1
page-15
page-258
atd..

nedělat nic když poslední hodnota pole nebude "text".

vyhodit chybu když poslední hodnota pole bude "text" ale nebude platný format
page-01
page-001
atd..
page--01
page-0-1-
-page-0-1-
atd..

snad je to popsané lépe, děkuji


A page-0 je taky špatný zápis který by měl vyvolat chybu ;-)

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