Portál AbcLinuxu, 12. května 2025 07:05
$link="jedna\dve\honza\jde";Dale mam pole s nazvem $ctrl
$ctrl=array('jedna' => 'Jedna', 'jedna\dve' => 'Dve');no potreboval bych zavolat vzdy posledni polozku v tom poli ktera existuje.
1 kontrola zda pole obsahuje polozku "jedna\dve\honza\jde" - NEOBSAHUJE 2 kontrola zda pole obsahuje polozku "jedna\dve\honza" - NEOBSAHUJE 3 kontrola zda pole obsahuje polozku "jedna\dve" - OBSAHUJE 4 chci ziskat polozku s nazvem "Dve". 5 pokud polozka v poli vubec neni, vypsat "Chyba"Pomuze prosim nekdo? Dekuji
$t = 'Vychozi text'; $ctrl=array('jedna' => 'Jedna', 'jedna/dve' => 'Dve'); $link="jedna/dve/honza/jde"; $a = explode('/', $link); $a2 = explode('/', $link); foreach($a2 as $value){ $b = implode('/', $a); if(array_key_exists($b, $ctrl)){ $t = $ctrl[$b]; break; }else{ $c = explode('/', $b); $x = count($c); unset($a[$x-1]); } } echo $t;
4 kontrola zda pole obsahuje polozku "jedna" - OBSAHUJETakze hledas firsdt match?
function link_search($link, $ctrl) { $link_a = explode('\\', $link); $sub_links = array(); $prefix = ''; // sestavi pole vsech podcest foreach ($link as $p) { if ($prefix == '') { $prefix = $p; } else { $prefix .= '\\'.$p; } $sub_links[] = $prefix; } // Projde pozpatku (od nejdelsi) pole vsech podcest a vrati prvni, ktera je v $ctrl foreach (array_reverse($sub_links) as $ln) { if (isset($ctrl[$ln])) { return array($ln, $ctrl[$ln]); } } return null; }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.