Portál AbcLinuxu, 3. listopadu 2025 21:16
$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.