Portál AbcLinuxu, 10. května 2025 07:34

Dotaz: Problem s funkci v php

27.4.2012 00:47 Koloděj
Problem s funkci v php
Přečteno: 171×
Odpovědět | Admin
Zdravím, může mi tohle někdo vysvětlit? Pokud testuji jestli existuje v poli $fff zadaná hodnota tak mi to vrací, ze 10 neexistuje, 20, 50, 110 existuje. Proč? Díky za pomoc
           $fff = array();

           $fff[] = 10;
           $fff[] = 20;
           $fff[] = 50;
           $fff[] = 110;

          if(array_search(10, $fff))
            echo 'Hodnota v poli existuje'; //20 //50 //110
              else
            echo 'Hodnota v poli neexistuje'; //10

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.4.2012 01:16 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: Problem s funkci v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravím, dej si před ten if print_r($fff); a bude ti jasno...

HINT> konstrukt $fff[] = 10; vytvoří prvek $fff[0] = 10; další volání $fff[] je ekvivalent $fff[1] atd.
27.4.2012 01:25 James Scott | skóre: 5
Rozbalit Rozbalit vše Re: Problem s funkci v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Používej funkci in_array(). Funkce array_search() má jiný význam.
james-scott.cz - osobní mini-blog
Michy avatar 27.4.2012 10:15 Michy | skóre: 11 | Praha
Rozbalit Rozbalit vše Re: Problem s funkci v php
Odpovědět | | Sbalit | Link | Blokovat | Admin

Funkce array_search vrací klíč, pod kterým se v onom poli nachází. V případě prvního prvku vrátí tedy celočíselnou hodnotu 0, která se ale v podmínce if vyhodnotí jako FALSE. Správná podmínka tedy je: if(array_search(10, $fff)!==false)

Jestli tě ale zajímá pouhá přítomnost prvku v poli a je ti jedno, pod jakým klíčem, pak je rozhodně srozumitelnější použít už zmiňovanou funkci in_array.

27.4.2012 11:04 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problem s funkci v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
0 je také false, viz implicitní konverze na boolean typ a porovnávací operátory.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.