Autor | Zpráva | ||
---|---|---|---|
farradox Profil |
#1 · Zasláno: 28. 11. 2009, 11:27:07
Zdravím, asi řeším prkotinu, ale není mi jasné jak dostanu hodnoty z pole. Podle dokumentace mi server pošle array v této podobě:
array output { int id string id_interni int typ int status } Pole dostanu, ale nevím jak vykuchat ty hodnoty. Není mi totiž úplně jasná ta struktura... Měl by to být "seznam" objektů, kde bude jeho i a další stavy. Předem díky za odpověď |
||
Joker Profil |
#2 · Zasláno: 28. 11. 2009, 11:35:45
farradox:
„není mi jasné jak dostanu hodnoty z pole“ Přes hranaté závorky a index. $pole["id"] = 5; $id = $pole["id"]; // $id bude 5 Je tohle ten problém? |
||
MCKAY Profil |
#3 · Zasláno: 28. 11. 2009, 11:43:54
farradox:
Pokud máš s nějakým polem problém, používá se dost často funkce print_r(); nebo var_dump();, které ti vypíší strukturu toho pole. Takže na příkladu: <?php $array = array(1=>"Text_jedna", "text_dve");print_r($array);?> Ti vypíše celou strukturu: Array ( [1] => Text_jedna [2] => text_dve ) Kde hodnota v hranatých závorkách je index, a to za šipkou je hodnota. Takže index jedna má přiřazen řetězec "Text_jedna" a index dvě má "text_dve", pokud zobrazit hodnoty tak si vypises $array["jmeno_nebo_cislo_indexu"]; |
||
farradox Profil |
#4 · Zasláno: 28. 11. 2009, 12:10:52 · Upravil/a: farradox
To je dobré. Dneska jsem opět objevil svět :)
Array ( [0] => Array ( [advert_id] => 1975638534 [rkid] => 001 [advert_type] => 4 [user_status] => 2 ) ..........) Teďka předpokládám, že použiju foreach na hlavní strukturu: foreach ($list as $key ){ // $key my vypisuje hodnoty Array ( [0,1,2,3,4,5,6,7,8,9..] =>Array( } A kam mám teď dosadit $key, aby jsem dostal ty další hodnoty? |
||
MCKAY Profil |
#5 · Zasláno: 28. 11. 2009, 12:23:56
farradox:
Není to úplně jasně položená otázka, dávej také kód mezi , je to přehlednější a lépe se pomáhá. Teorie toho foreach |
||
farradox Profil |
#6 · Zasláno: 28. 11. 2009, 12:28:39
Ano, to je přesně to co potřebuji "pole v poli". Omlouvám se za nepřesné vyjádření.
Předpokládám, že musím použít 2x foreach , ale nevím v jaké proměnné je uložená struktura toho "druhého" pole |
||
MCKAY Profil |
#7 · Zasláno: 28. 11. 2009, 12:43:21
farradox:
Jeden by měl stačit, nejprve si zjisti, ve kterém indexu prvního pole je umístěno to pole druhé, potom ve foreachu bude proměnná ve které je to pole v poli $list["index_kde_je_dalsi_pole"]; |
||
farradox Profil |
#8 · Zasláno: 28. 11. 2009, 12:44:30 · Upravil/a: farradox
Tak uz jsem na to přišel:
foreach ($list[output] as $key => $pole){ foreach ($list[output][$key] as $key2 => $pole2){ } } Nebo napevno pokud znám název hodnoty $list[output][$key][id] Hrozně moc mi pomohla funkce print_r() Děkuji moc :) |
||
Nox Profil |
#9 · Zasláno: 28. 11. 2009, 15:25:21 · Upravil/a: Nox
farradox:
jinak kolem klíčů dej uvozovky -> $list["output"], jsou to řetězce a spoléhat se na implicitní konverzi na řetězec není dobré třeba i proto že kdybys náhodou někde vytvořil konstantu output, tak najednou by tento skript přestal fungovat nebo by dělal něco jiného |
||
nightfish Profil |
#10 · Zasláno: 28. 11. 2009, 16:40:13
farradox:
dá se zapsat také jako foreach ($list[output] as $key => $pole){ foreach ($list[output][$key] as $key2 => $pole2){ // a tady pracovat s $pole2['id'] atd. } } |
||
farradox Profil |
#11 · Zasláno: 28. 11. 2009, 17:40:59
jj,ale varianta s jedním foreach budu na zpracování určitě rychlejší. Je výhoda, že znám názvy těch hodnot. Díky :)
|
||
Časová prodleva: 14 let
|
0