Portál AbcLinuxu, 7. května 2025 22:16

Dotaz: PHP - Jak otestovat prvky v poli

6.8.2013 23:54 PES
PHP - Jak otestovat prvky v poli
Přečteno: 241×
Odpovědět | Admin
Jak otestovat jeden prvek v poli aby výsledek byl takovej?
$array = array('egg' => 'saaas',
               'cheese' => 'fsdfsdf',
               'hair' => 'ogresda',
               'goblins' => 'sssssss',
               'ogres' => 'ddddddd');

//pozadovane vysledky
egg     //true
saaas   //false
cheese  //true
fsdfsdf //false
hair    //true
ogresda //false
goblins //true
sssssss //false
ogres   //true
ddddddd //false
Zkousel jsem
if(!in_array('ogres', $array))
 echo "existuje";
else
  echo "neexistuje";
a taky jsem zkoušel přísnější nastavení
if(!in_array('ogres', $array, true))
 echo "existuje";
else
  echo "neexistuje";
ale vrací to vždy totální nesmysl :-( Díky moc za pomoc...

Řešení dotazu:


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

Odpovědi

Řešení 1× (Šangala)
6.8.2013 23:58 potato
Rozbalit Rozbalit vše Re: PHP - Jak otestovat prvky v poli
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je třeba přečíst si popis funkce: in_array() hledá v hodnotách. Klíče testuje array_key_exists().
7.8.2013 09:21 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: PHP - Jak otestovat prvky v poli
O tochu rychlejší je použít
isset($array['ogres']);
nicméně isset má jednu zvláštnost a to pokud je hodnota null
$a = array('key1' => 'test', 'key2' => null);

isset($a['key1']);             // true
array_key_exists('key1', $a);  // true

isset($a['key2']);             // false
array_key_exists('key2', $a);  // true
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
7.8.2013 09:53 potato
Rozbalit Rozbalit vše Re: PHP - Jak otestovat prvky v poli
A proto se tahle zvrácenost (původem z perlu) s používáním neexistujících klíčů a následným bádáním, zda hodnota skutečně pochází z kolekce, nebo nikoli, nemá používat.

Pro srovnání příčetný jazyk (Python):
k in h           # True pokud klíč k existuje v hashi h
h[k]             # hodnota v h indexovaná k, vyhodí výjimku, pokud k neexistuje
h.get(k)         # hodnota v h indexovaná k, vrátí Null, pokud k neexistuje
h.get(k, x)      # hodnota v h indexovaná k, vrátí x, pokud k neexistuje

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.