Autor | Zpráva | ||
---|---|---|---|
_fantomas Profil |
#1 · Zasláno: 5. 12. 2016, 16:34:37
Ahoj, mám pole (url)
Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat [5] => sest [6] => sedem ) Potrebujem napísať volajakú funkciu alebo cyklus ktorý mi spraví viac polí a to aby postupne pridal o jednu hodnotu naviac takže v tom prípade by to malo vyzerať Array ( [0] => jeden ) Array ( [0] => jeden [1] => dva ) Array ( [0] => jeden [1] => dva [2] => tri ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat [5] => sest ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat [5] => sest [6] => sedem ) Neviem vôbec či to je možne alebo ako to spraviť. Vdaka za rady. |
||
Tomášeek Profil |
#2 · Zasláno: 5. 12. 2016, 16:49:14
_fantomas:
A jéje, domácí úkol. Samozřejmě, že to jde, když jste to dosali jako testovací úlohu :-) Zkus nejprve něco vymyslet sám, a teprve pak, až to "něco" nebude fungovat, přijď pro radu, jak to dát do kupy. |
||
weroro Profil |
V PHP je to pomerne jednoduché.
Stačí ak si vytvoríš premennú s poľom, napr. $pole = []; a do tohto poľa pridáš položky nasledovne $pole[] = 'hodnota1'; $pole[] = 'hodnota2'; $pole[] = 'hodnota3'; $pole[] = 'hodnota4'; Výsledkom bude naplnené pole array( [0] => 'hodnota1', [1] => 'hodnota2', [2] => 'hodnota3', [3] => 'hodnota4' ); |
||
_fantomas Profil |
#4 · Zasláno: 5. 12. 2016, 17:09:24
No mám to takto.
public static function pager($parameters) { $pole = []; foreach ($parameters as $index => $value) { $pole[] = $value; print_r($pole); } } Ak mám v URL hodnotu - localhost/admin/jeden/dva/tri/styri/pat/sest/sedem tak mi to vytvorí polia. Array ( [0] => jeden ) Array ( [0] => jeden [1] => dva ) Array ( [0] => jeden [1] => dva [2] => tri ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat [5] => sest ) Array ( [0] => jeden [1] => dva [2] => tri [3] => styri [4] => pat [5] => sest [6] => sedem ) Teraz mam zas problém vypísat dane pole. Ako na to o.O |
||
weroro Profil |
#5 · Zasláno: 7. 12. 2016, 16:21:37
Presuň
print_r zo 7 riadku medzi riadky 8 a 9. teraz sa ti totiž vypíše pole pri každej jednej iterácii toho cyklu foreach . Ty musíš najprv počkať kým sa to pole naplní, to znamená, že kým neskončí cyklus a až potom to pole vypíšeš.
|
||
Monkeys Profil * |
#6 · Zasláno: 7. 12. 2016, 17:08:58
alebo takto:
$pole = array(); array_walk($parameters, function(&$key, $item) use ( &$pole ){ $pole[] = $item; }); print_r($pole); M. |
||
_fantomas Profil |
#7 · Zasláno: 7. 12. 2016, 20:33:43
Ide o to že ja som dosiahol čo som chcel.
Ak mám v URL /jeden/dva/tri tak som chcel aby to vypisalo prave toto Array ( [0] => jeden ) Array ( [0] => jeden [1] => dva ) Array ( [0] => jeden [1] => dva [2] => tri ) len problém je ten že ked chcem potom vybrat z tích 3 polí jedno trebarz to druhe tak ho neviem vypísať, iba všetky naraz, rozumieme sa? :) |
||
IdemeNaHavaj Profil |
#8 · Zasláno: 7. 12. 2016, 23:00:13
tak si tie arraye este obal do jedneho arrayu a z neho si vypises ten array ktory chces
|
||
TomášK Profil |
Nejde to takto
print_r(array_slice($parameters, 0, 2)) ? Netestoval jsem to.
|
||
_fantomas Profil |
#10 · Zasláno: 8. 12. 2016, 14:14:47
No mám to takto.
$i = 0; $pole = []; foreach ($parameters as $index => $value) { $pole[] = $value; print_r(array_slice($parameters, $i++)); }; ak mám v url jeden/dva/tri/styri tak mi to vypise Array ( [0] => jeden [1] => dva [2] => tri [3] => styri ) Array ( [0] => dva [1] => tri [2] => styri ) Array ( [0] => tri [1] => styri ) Array ( [0] => styri ) TomášK: takže to čo si mi napísal funguje presne naopak, ja som potreboval postupné pridavanie a teraz je to postupné odoberanie. Porblém mám už len s tím že ak mam tie polia tak neviem vypísať iba jednotlivé ale iba naraz všetky a IdemeNaHavaj to som sa pokúšal ale nepodarilo sa mi to. Nemáš menší príklad aby som to vedel napísať? |
||
TomášK. Profil * |
#11 · Zasláno: 8. 12. 2016, 14:29:47
for($i = 1; $i < count($parameters); $i++) { print_r(array_slice($parameters, 0, $i)); } Pokud chceš pouze třetí, pak print_r(array_slice($parameters, 0, 3)); .
|
||
Keeehi Profil |
#12 · Zasláno: 8. 12. 2016, 14:32:02
_fantomas:
Já mám pocit že že vlastně nevíš co chceš. Respektive víš co chceš udělat, ale sem jsi to nenapsal. Snažíš se tady vyřešit nějaká podproblém, který si myslíš že povede k celkovému řešení, ale pokud ano, tak nejspíš nějak krkolomně. Takže víme, že v url máš n parametrů. K čemu slouží? K čemu potřebuješ vybrat určitou podmnožinu? Jaká pro ní mají platit pravidla? Zapomeň teď úplně na kód a popiš třeba z pohledu návštěvníka, k čemu to má sloužit (např. chci mít na stránce tlačítka, která budou filtrovat tabulku, hodnoty v url představují právě zvolený filter). |
||
_fantomas Profil |
#13 · Zasláno: 8. 12. 2016, 14:46:39
Potrebujem spraviť to malé menu ktoré je väčšinou pod hlavným nádpísom Domov > Obchod > Objednávky ...
Preto potrebujem vybrať postupne tie hodnoty z url aby som ich potom mohol dosadiť do odkazu toho menu. |
||
Keeehi Profil |
public static function pager($parameters) { $result = [] foreach ($parameters as $index => $value) { $result[] = "<a href=\"".implode('/', array_slice($parameters, 0, $index+1))."\">$value</a>"; } return implode(' > ', $result); } |
||
_fantomas Profil |
Keeehi:
Vdaka, funguje. Ešte by som poprosil, do odkazu mo to dosadí to čo je v url čiže niečo ako <a href="add-product">add-product</a> Potreobval by som tam vložiť podmienky že ak je napríklad v url to add-product aby to do odkazu nenapísalo add-product ale zameniť to za Pridať produkt. |
||
Keeehi Profil |
#16 · Zasláno: 8. 12. 2016, 20:40:43
public static function pager($parameters) { $result = [] foreach ($parameters as $index => $value) { $result[] = "<a href=\"".implode('/', array_slice($parameters, 0, $index+1))."\">".self::translate($value)."</a>"; } return implode(' > ', $result); } private static function translate($input) { return [ "add-product" => "Pridať produkt", "foo" => "Foo", "bar" => "Bar" ][$input]; } |
||
_fantomas Profil |
#17 · Zasláno: 8. 12. 2016, 20:47:47
Keeehi: vdaka.
|
||
Časová prodleva: 8 let
|
0