Diskuze: asociativní pole polí
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
foreach ($obsahStranky[0] as $odkazy)
{
//$a .= ("ahoj");
$a .= $odkazy;
print_r($odkazy);
}
Tento kod mi vypíše duplicitní (po sobě stejnou) hodnotu, takže zabalení foreach cyklu do for cyklu který by zvišoval index u obsahStranky sam o sobe neřeší problém.
ahoj, řešení je v tomto případě jednoduché, musíš se odkázat na
daný index.
za předpokladu že platí $obsahStranky = Array ( [0] => Array ( [url] =>
uvodd [0] => uvodd ) [1] => Array ( [url] => zadejteURL [0] =>
zadejteURL ) [2] => Array ( [url] => prihlaseni [0] => prihlaseni ) [3]
=> Array ( [url] => fwfw [0] => fwfw ) [4] => Array ( [url] =>
registrace [0] => registrace ) [5] => Array ( [url] => jidelnicek [0]
=> jidelnicek ) )
tak kod bude vypadat takto:
foreach ($obsahStranky as $odkazy)
{
print_r($odkazy['url']);
}
Cyklus procházi jednotlivá pole 0 - N, v ten moment máš v porměnné $odkazy pole na dan0m indexu v hlavním poli. Takže už ti stačí jen odkázat na index co chceš vytáhnout z daného "vnitřního" pole. Snad jsem to popsal pochopitelně.
tím získám všechny hodnoty ale nemůžu snima dále jednotlivě pracovat protože je to prostý string.
Ja jsem ti napsal jak dostaneš neduplicitní hodnoty, ale já neví co stím chceš dál dělat. Napiš co stim dál a vymslíme to.
Prakticky co o tom premyslim tak potrebuji ziskat pouze posledni pole z pole
na co by mohla byt v PHP funkce. Jdu trochu pogoglit a snad neco najdu. Prece
jen ve dne se o tom premysli lepe nez ve 3. rano 
foreach ($obsahStranky as $odkazy)
{
$a[]=($odkazy['url']);
//$a = (' ');
//$a .= ('</a>');
//print_r('ahoj');
}
print_r($a);
foreach ($a as $odkazy)
{ $aa .= ('<h1>');
$aa .= ($odkazy);
$aa .= ('</h1>');
}
print_r($aa);
Hotove a funkcni. Dekuji za nasmerovani spravnym smerem 
nebude toto lepší ?
foreach ($obsahStranky as $odkazy)
{
echo '<h1>'.$odkazy['url'].'</h1>'
}
nebo napiš k čemu to chceš a co to má dělat.
Momentálně vypadá kod takto:
foreach ($a as $odkazy){
$aa = '';
for ($i = 0; $i < 4; $i++)
//
{ $aa .= ('</li><li class="nav-item"><a class="nav-link link" href="');
$aa .= ($a[$i]);
$aa .= ('" aria-expanded="false">');
$aa .= ($b[$i]);
$aa .= ('</a>');
}
$aaa ='';
for ($i = 4; $i < 16; $i++)
{
$aaa .= ('<a class="dropdown-item" href="');
$aaa .= ($a[$i]);
$aaa .= ('">');
$aaa .= ($b[$i]);
$aaa .= ('<br></a>');
}
}
$aaaa=[
$aa,
$aaa
];
// print_r($aaaa);
return $aaaa;
Kod funguje, pár věcí tam ještě budu vylepšovat spíše mě teď štve upozornění: Undefined offset: 14 in. Nějak se PHPčku nelíbí vkládání dat do $aa a $aaa. Jinak kod nacita udaje z DB aby mohl vypsat menu a for cyklus je kvuli tomu ze do sablony nemuzu vkladat vsechny odkazy do sablony, protoze se nevejdou.
... Kompletni kod je:
foreach ($obsahStranky as $odkazy)
{
//$a .= ('</li><li class="nav-item"><a class="nav-link link" href="uvod" aria-expanded="false">');
$b[]=($odkazy['titulek']);
$a[]=($odkazy['url']);
//print_r ($b);
}
//print_r($a);
$x= -1;
$aa = '';
$aaa = '';
foreach ($a as $odkazy){
$aa = '';
for ($i = 0; $i < 4; $i++)
//
{ $aa .= ('</li><li class="nav-item"><a class="nav-link link" href="');
$aa .= ($a[$i]);
$aa .= ('" aria-expanded="false">');
$aa .= ($b[$i]);
$aa .= ('</a>');
}
$aaa ='';
for ($i = 4; $i < 16; $i++)
{
$aaa .= ('<a class="dropdown-item" href="');
$aaa .= ($a[$i]);
$aaa .= ('">');
$aaa .= ($b[$i]);
$aaa .= ('<br></a>');
}
}
$aaaa=[
$aa,
$aaa
];
// print_r($aaaa);
return $aaaa;
Možná bych popřemýšlel o jiné databázové struktuře. Protože pokud ted přidáš jednu položku tak to budeš muset celé přepsat. Být tebou naučím se nejdřiv pořádně použivat zakladní funkce PHP a něco si o tom zijstit. Protože to co tu píšeš je opravdu něco co nění hezký.
1. bod: zvyk, prakticky je to jedno ne ?
2.bod: Ano, toto předělám
3:bod: vytvářeno systémem pokus omyl, přepíšu je
4.bod: Děkuji za tip, určitě kouknu
Jinak s tím přepsáním ano momentálně jo ale přidám databázový dotaz který mi vrátí počet řádků tabulce a danou proměnou dosadim místo čísla 16.
foreach ($obsahStranky as $odkazy)
{
//$a .= ('</li><li class="nav-item"><a class="nav-link link" href="uvod" aria-expanded="false">');
$titulek[]=($odkazy['titulek']);
$url[]=($odkazy['url']);
$pocet=count($url);
//print_r ($pocet);
}
//print_r($a);
//$x= -1;
foreach ($url as $odkazy){
$menu1 = '';
for ($i = 0; $i < 4; $i++)
//
{
$menu1 .= ('</li><li class="nav-item"><a class="nav-link link" href="'.$url[$i].'" aria-expanded="false">'.$titulek[$i].'</a>');
}
$menu2='';
for ($i = 4; $i < $pocet; $i++)
{
$menu2 .= ('<a class="dropdown-item" href="'.$url[$i].'">'.$titulek[$i].'<br></a>');
}
}
$PoleMenu=[
$menu1,
$menu2
];
// print_r($aaaa);
return $PoleMenu;
Konečná podoba než si přečtu nějaký článek, který mi řekne že to
dělám úplně blbě 
Zobrazeno 13 zpráv z 13.
