Portál AbcLinuxu, 25. dubna 2024 01:04


Dotaz: PHP - Jak získat klíč z pole

22.2.2015 19:39 KaFon
PHP - Jak získat klíč z pole
Přečteno: 256×
Odpovědět | Admin
Ahoj, poradí mi prosím někdo? jak získat klíč z takového pole v PHP ?
$arr = ['keyname1' = 'value1', 'keyname2' = 'value2', 'keyname3' = 'value3'];
neznám název klíče, ale znám jeho pozici, jestli to pomůže. Děkuji pěkně 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

22.2.2015 19:43 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jakého pole? Kde ho máš?
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
22.2.2015 20:11 KaFon
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Co ? Proměnná $arr je přece pole ;-)
22.2.2015 20:13 KaFon
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Eh.. EDIT :-D
$arr = ['keyname1' => 'value1', 'keyname2' => 'value2', 'keyname3' => 'value3'];
22.2.2015 20:18 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Vidím slovník. Ten indexy nemá.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
22.2.2015 20:24 KaFon
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Slovník? Aha, a jak se jmenujou položky(mnou patrně blbě pojmenované) "keyname1, keyname2, keyname3" ?
xxxxxx avatar 22.2.2015 20:27 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Slovník má klíč -> hodnota (máš to i v tom příklady keyname1, key je klíč), pole mají index -> hodnota
22.2.2015 21:07 KaFon
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Není to spíš opačně? Fakt nevém..
$slovnik = ['key1'   => 'hodnota1', 'key2'   => 'hodnota2', 'key3'   => 'hodnota3'];
$array   = ['index1' => 'hodnota1', 'index2' => 'hodnota2', 'index3' => 'hodnota3'];
Žádná rozdíl opravdu nevidím..
xxxxxx avatar 23.2.2015 10:45 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Index by měl být číselný, klíč text:
$array = [0 => 'hodnota1', 1 => 'hodnota2', ...];
Josef Kufner avatar 23.2.2015 11:16 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Jenže PHP umožňuje i věci jako:
$array1 = [2 => 'hodnota1', 10 => 'hodnota2', 11.12 => 'hodnota3', ...];
Hello world ! Segmentation fault (core dumped)
23.2.2015 11:09 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Pole v PHP de facto vůbec není. Pouze nějaká dynamická datová struktura, která se inicializuje slovem array a pracuje se s ní pomocí funkcí array_*. Je pak na vývojáři, jak s takovou strukturou naloží - zda ji použije jako pole, seznam, slovník, množinu nebo objekt.

Je dobré takovou strukturu pojmenovat nikoli podle fyzické reprezentace, ale podle její sémantiky v dané aplikaci. Název $arr je tedy z tohoto pohledu nesmyslný a je nutné ho změnit, aby aplikace byla čitelnější.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 23.2.2015 11:14 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
A aby to nebylo tak jednoduché, tak i funkcemi jako key(), reset(), each(), …

A vlastně i obyčejný objekt se může chovat jako pole, když implementuje ArrayAccess interface.
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 22.2.2015 21:09 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
V PHP je všecko pole. Slovník a seznam se tam nerozlišuje.
Hello world ! Segmentation fault (core dumped)
23.2.2015 11:13 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Sice se používá klíčové slovo array, ale pole to není.

I kdyby to bylo pole, nevidím žádný důvod ho pojmenovat $arr.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
22.2.2015 20:26 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud chceš z toho slovníku získat seznam jeho klíčů, můžeš zkusit
$keys = array_keys($arr);
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 22.2.2015 21:10 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Pokud to cheš projít, tak:
foreach($pole as $klíč => $hodnota) {
    // ...
}
Hello world ! Segmentation fault (core dumped)
Řešení 1× (Thyrst')
26.2.2015 13:06 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: PHP - Jak získat klíč z pole
Odpovědět | | Sbalit | Link | Blokovat | Admin
$arr[\array_keys($arr)[$pozice]]
What Big Oil knew about climate change

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.