Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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

Předmět Autor Datum
Hoď to do googlu a inspiruj se. Jde to, ale není to moc dobrý řešení, zkus to vymyslet jinak. Ve sl…
Odoaker 04.02.2017 22:56
Odoaker
array_search
Dwane Dibbley 04.02.2017 23:07
Dwane Dibbley
Ak je hodnota vždy zložená z kľúčov oddelených pomlčkou, tak stačí použiť explode podľa pomlčky a do…
los 05.02.2017 00:29
los
Konkrétně pro hodnotu '02-a' potřebuješ asi získat všechny klíče, tedy pole. Nevím, jestli potřebuje…
hynajs 05.02.2017 11:03
hynajs
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…
zubar 05.02.2017 22:44
zubar
na toto nepotrebujes ziadnde pole. pre kazdu URL si sprav triedu. class KontaktyController { public…
wam_Spider007 06.02.2017 00:13
wam_Spider007
Sice netuším, jak to souvisí s původním dotazem, ale v tom případě stačí vytvořit pole na tento způs… poslední
hynajs 06.02.2017 00:15
hynajs

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

www.example.com/kontakty
www.example.com/contact
www.example.com/kontakte

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.

class KontaktyController
{
public function index()
{
include_once("contact.php");
}
}

class ContactController
{
public function index()
{
include_once("contact.php");
}
}
...

Potom vo svojej index stranke na zaklade nazvu z URL urobis nieco taketo:

$url = "Kontakty"; // toto je len akoze. v skutocnosti to ziskas z tej URL
$controllerName = $url."Controller";
$controller = new $controllerName();
$controller->index();

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:

$pole=array("kontakty"=>"controller_conctact.php","část url"=>"soubor.php",);

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.

Zpět do poradny Odpovědět na původní otázku Nahoru