Diskuze: Odstranění části proměnné
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 20 zpráv z 20.
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.
explode + unset
str_replace/preg_replace, explode
explode + cyklus + unset
foreach ($arr as $key=>$value) {if ($value=='3') {unset($arr[$key]); break;}}
Nebo mozna nejakou funkci z manualu. Hledal jsi tam vubec?
Nebo aspon googlem?
php.net/array nebo
https://www.php.net/…ok.array.php
http://cz.php.net/book.array.php
http://cz.php.net/…ef.array.php
Tragedka, nemel kdo prelozit. Ale vim, ze nejaky starsi manual mel i ceske
preklady.
Díky já to zkusím. Ne nehledal jsem. Jsem v časové tísni a poprvé po dlouhé době využívám mozek větší než ten můj. Díky za pomoc moc si toho vážím.
Ahoj, otázkou je jaká kritéria pro hodnocení "co odebrat" chceš použít. Pokud chceš odebrat třeba první 1čku lze použít...
$new_rating = preg_replace('1,', '', $rating, 1);
Tomáši to vypadá opravdu jednoduše. Díky moc!
Je mi opravdu jedno, kterou jedničku odebrat, čili tohle řešení je moc
prima díky.
php.net/str_replace
$str = "2,5,3,4,4,2,1,1,1,5,5";
$str = str_replace(array('3,', ',3'), array('', ''), $str, 1);
$arr = explode(',' , $str);
// ---
php.net/preg_replace
$str = "2,5,3,4,4,2,1,1,1,5,5";
$str = preg_replace('~,?3,?~', '', $str, 1);
$arr = explode(',' , $str);
'nehledal jsem. Jsem v časové tísni ' - u nas v praci se tomu rika vymluvy
a nedava se za to zadny bonus na vyplatu
zvlast proto, ze pri hledani mas reseni do 5 min, na forku do 14 dni.
Kdyz jde zrovna o jednoduchou vec
Ano je to výmluva, ale moc dobrá! Stejně si byl tak hodný a pomohl jsi mi.
Líbilo se mi v tom tvém řešení, že jsi myslel i na to, že ta hodnota, kterou se snažím vymazat bude vůbec ta první nejen ta ve středu nebo na konci řetězce. Je to tedy univerzální přesně pro to co potřebuji.
Tohle mi nedá.
Takže při cca 1000 hodnocení 1-5 budeš mít řetězec dlouhý 2000 znaků?
Předpokládám, že udělené hodnoty nijak nepáruješ, třeba k IP adrese, času a datum udělení.
Ty udělené hodnoty, ukládáš do souboru? Na podobné věci je skvělé SQLite, mohl bys pak mít pole třeba: {3,2,1,2,2}, (pořadí určuje známku hodnocení), v momentě, kdy budeš mít třeba těch 1000 hodnocení, bude to hned veselejší, př. {250,350,180,150,70}.
No máš pravdu. Na to jsem nemyslel
@Peter
to tvoje řešení, které se mi tak líbilo mi hází chybu (týká se druhé
řádky)
$str = "2,5,3,4,4,2,1,1,1,5,5";
$str = str_replace(array('3,', ',3'), array('', ''), $str, 1);
$arr = explode(',' , $str);
PHP: Only variables should be passed by reference
Jestli trváš na zachování řetězce pak zkus tohle:
$str = "2,5,3,4,4,4,2,1,1,1,5,5";
$str = preg_replace("/(1,)/i", "", $str,1);
Smaže to první jedničku, kterou potká.
http://php.net/str_replace
Tak si to podle prikladu sprav? 
Ja netvrdil, ze jsem to testoval. Pouze napsal, jakym asi zpusobem to pouzit. Co
se ti nelibi na cyklu z prvni odpovedi?
Example #1 Basic str_replace() examples
// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
,3 odpovida i ,33
3, odpovida i 13,
a co kdyz vstupni string bude '3' ?
S tim preg replace nastane podobny problem, tam jsem to tez nedomyslel.
preg_replace('~^3()$|^3,()|,3$()|,3(,)~', '$1', $str, 1); // zacatek 3 konec | zacatek 3 carka | carka 3 konec | carka 3 carka // a vyraz v zavorce se objevi v $1, coz je nutne pro posledni pripad, zachovat carku
Mozna by to slo napsat i jednoduseji, ale nechce se mi v patek premyslet 
Hynkovo reseni trpi podobnymi nedostatky. Co nechapu, proc tam ma 'i'? 'i' znamena nerozlisuj velikost pismen. Pokud tam neco dat pro univerzalnost, tak spis neco jako gm. Ale jestli si to nepletu s js regularnimi vyrazy..
Díky moc chlapi. Odsud už to zvládnu.
i je setrvacnost, jinak to funguje bez chyby. Vzdy zkousim to co sem davam.
Jinak, cislo na zacatku i v prubehu bude n, kdyz bude na konci, bude tak max jednou, tedy ho nema cenu mazat.
Přijde mi, že ses do toho zamotal Peter Mlich a vyrábíš řešení
na problém který není.
V zadání je psáno, že hodnoty jsou z intervalu 1-5, takže 33, 13 ve stringu
nejsou. V cíli je napsáno, že chce odebrat jednu hodnotou z mnoha ... (myslel
jsem, že ze shodných, na základě předchozího kontextu)
ale dobrá, obecně jakékoliv jedno hodnocení a kdekoliv třeba takto
$new_rating = preg_replace('/1/', '', $rating, 1);
pokud by mu vadilo, že někde zůstanou oddělovače bez hodnot...
$purged_rating = preg_replace('/^,|,,|,$/', '', $new_rating);
nebo lze tyto dva zkombinovat do jednoho, případně obdobně použít
str_replace...
Za zvážení rozhodně stojí příspěvek David Hynek s "nasčítaným
hodnocením".
Ej, tak ještě jedna drobná nepřesnost ... ",," je samo potřeba nahrazovat "," ... ale tak věřím, že chápete kolegové
My to chapeme, ale on asi nepochopi
Proto jsem tam daval tolik zavorek do toho preg_replace. Jakoze by
bylo lepsi napsat cely vzorec, pro jistotu. A mozna by bylo prehlednejsi to
vlozit ty moznosti spis do str_replace.
Stejne si myslim, ze uplne nej je ten cyklus, co jsem napsal na zacatku. Explode
vyresi carky a pak uz jen hledas a unsetnes.
Zobrazeno 20 zpráv z 20.
