
PHP - Jak získat klíč podle hodnoty
Ahoj, když mám v PHP takové pole
$array = [] ;
$array['01']['a']='01-a';
$array['01']['b']='01-b';
$array['01']['c']='01-c';
$array['02']['a']='02-a';
$array['02']['b']='02-a';
$array['02']['c']='02-a';
$array['03']['a']='03-a';
$array['03']['b']='03-b';
$array['03']['c']='03-c';
$array['04']['a']='04-a';
$array['04']['b']='04-b';
$array['04']['c']='04-c';
a znám pouze hodnotu třeba
03-a
poradí někdo prosím jak získat key té hodnoty?
Děkuji
Hoď to do googlu a inspiruj se.
Jde to, ale není to moc dobrý řešení, zkus to vymyslet jinak. Ve slovníku taky hledáš podle klíče a ne podle definice/překladu slova.
array_search
Ak je hodnota vždy zložená z kľúčov oddelených pomlčkou, tak stačí použiť explode podľa pomlčky a dostaneš sa k jednotlivým kľúčom. Prípadne ti môže stačiť aj jednoduchý substr. Neviem ale, či je to tvoj prípad, keďže pre '02' máš pre všetky prvky hodnotu '02-a' - možno len preklep?
Druhá vec je, že načo je takéto pole vlastne dobré? Možno by bola vhodnejšia iná štruktúra. To ale naozaj závisí len od toho, na čo to potrebuješ.
Konkrétně pro hodnotu '02-a' potřebuješ asi získat všechny klíče, tedy pole.
Nevím, jestli potřebuješ odpověď pro Tvůj příklad ( v tom případě viz odpovědi výše) anebo obecně.
Obecně buď použiješ připravenou funkci PHP (např. array_search, ta ale vrací pouze první nalezený klíč ), která se pro konkrétní potřebu nemusí hodit.
Vždy ale můžeš projít pole pomocí foreach (případně vloženého víckrát) a vrátit, co potřebuješ.
Jde o to, že bych potřeboval nasměrovat na určitý soubor při více různých url. Příklad, pokud někdo zadá do url
tak načíst soubor třeba s názvem controller_conctact.php. Chci to udělat bez mysql.
na toto nepotrebujes ziadnde pole. pre kazdu URL si sprav triedu.
Potom vo svojej index stranke na zaklade nazvu z URL urobis nieco taketo:
Je to samozrejme trochu zbuchane narychlo, ale princip asi chapes :)
Sice netuším, jak to souvisí s původním dotazem, ale v tom případě stačí vytvořit pole na tento způsob:
Přečíst a zpracovat url a podle $pole include($pole["část url"]).
Což by šlo i při url o více částech - pak vytvoříš pole o vícero úrovních.