Autor | Zpráva | ||
---|---|---|---|
qteck Profil |
#1 · Zasláno: 1. 6. 2015, 17:22:24
čus,
tenhle script mi generuje undefined offsets a nevím jak bych to měl ošetřit. Mohl by mě někdo nakopnout správný směrem? Díky. function makeItHash ($tag) { $x = array(); //pro potlačení php notice undefined variable foreach ($tag as $key1 => $val1) { $e = explode(' ', $val1); foreach ($e AS $val) { $x[$key1] .= ucfirst($val); //undefined offsets } } return $x; } |
||
Joker Profil |
#2 · Zasláno: 1. 6. 2015, 17:23:38
qteck:
Tak pokud $x = array(); , tj. prázdné pole, logicky nebude existovat $x[$key1] .
|
||
qteck Profil |
#3 · Zasláno: 1. 6. 2015, 17:37:33 · Upravil/a: qteck
jasně, ale jakým způsobem to teda přepsat?
já tuhle pasážpovažuju za definici $x[$key1] .= ucfirst($val); ale si to tak není. Co s tím teda můžu dělat? oh, jasně otestoval jsem to: function makeItHash ($tag) { $x = array(); foreach ($tag as $key1 => $val1) { $e = explode(' ', $val1); foreach ($e AS $val) { if(!isset($x[$key1])) { $x[$key1] = ucfirst($val); } else { $x[$key1] .= ucfirst($val); } } } return $x; } Díky |
||
Joker Profil |
#4 · Zasláno: 1. 6. 2015, 18:42:00
qteck:
Tak nějak, nebo se to rozhodování může udělat ještě před vnitřním cyklem: function makeItHash ($tag) { $x = array(); foreach ($tag as $key1 => $val1) { $e = explode(' ', $val1); if (!isset($x[$key1])) { $x[$key1] = ""; } foreach ($e AS $val) { $x[$key1] .= ucfirst($val); } } return $x; } |
||
Alphard Profil |
Nebo rovnou
$x[$key1] = implode('', array_map('ucfirst', explode(' ', $tagString))); Joker [#4]: Tam ta podmínka na 7. řádku je přebytečná. $key1 musí být unikátní, takže lze řetězec inicializovat vždy.
|
||
Joker Profil |
#6 · Zasláno: 1. 6. 2015, 20:28:14
Alphard:
To je pravda. Já to z nějakého důvodu celou dobu beru tak, že to pole $x může už mít nějaký předchozí obsah. |
||
qteck Profil |
#7 · Zasláno: 2. 6. 2015, 09:26:43
Díky kluci.
a tenhle záps je vážně cool :) $x[$key1] = implode('', array_map('ucfirst', explode(' ', $tagString))); |
||
Časová prodleva: 9 let
|
0