Autor | Zpráva | ||
---|---|---|---|
Lukáš567 Profil * |
#1 · Zasláno: 27. 3. 2014, 03:17:36 · Upravil/a: Lukáš567
Zdravím,
mám taký problém, potrebujem overiť či sa určitý string nachádza v jednoduchom poli: $array= "abc, abcd, abcde, abcdef"; $a=explode(',', $array); foreach($xml as $key) { $code = $key->CODE; if (in_array($code, $a)) { $title = $key->TITLE; $popis = $key->POPIS; echo $title.";".$code.";".$popis."<br>"; } } Mám v tom XML načítaných cca 1000 riadkov,a ked dám podmienku IF preč, tak sa všetky pekne vypíšu pod seba, takže tam problém nieje, ale ked chcem, aby predtým než vypíše nejaký riadok, overilo či sa nachádza v array tá hodnota code, z toho konkrétneho riadku, tak vždy vypíše iba jeden riadok, a to ten s code abc, a nič viac. Pritom medzi tými 1000 riadkami sú obsiahnuté aj riadky obsahujúce všetky ostatné polia z array. Takže po správnosti by malo vypísať pod seba 4 riadky. Nechápem prečo mi to nefunguje. Ďakujem vopred za pomoc. Proste vždy sa skontroluje len pre to prvé pole z array. Ked prehodím poradie a dám prvú v array napr. "abcde" tak vypíše korektný riadok ktorý obsahuje abcde, ale zase tie ostatné nie. |
||
Chro Profil |
#2 · Zasláno: 27. 3. 2014, 03:29:19 · Upravil/a: Chro
Máš chybu v zápisu pole. Správný zápis je
$array = array( "abc", "abcd", "abcde", "abcdef" ); Sory, blbost, beru zpět. Jak ten řetězec exploduješ podle čárky, tak u některých hodnot zůstávají i zlomy řádků, protože ty hodnoty v řetězci máš zapsány pod sebou. A je rozdíl mezi abcd a abcd se zlomem řádku. |
||
Bertram Profil |
#3 · Zasláno: 27. 3. 2014, 07:17:50
Lukáš567:
$array= "abc, abcd, abcde, abcdef"; $a=explode(',', $array); var_dump($a); Takže buď takto, $array= "abcabcd,abcde,abcdef"; in_array($code, trim($a)) |
||
Tori Profil |
#4 · Zasláno: 27. 3. 2014, 08:50:47
Bertram:
„ in_array($code, trim($a)) “
Trim asi nebude fungovat na pole, to už spíš in_array($code, array_map('trim', $a));
|
||
peta Profil |
#5 · Zasláno: 27. 3. 2014, 10:20:38
Chro: Nn, rikas pravdu, ma chybu v zapise pole. Kdyz exploduje viceradkovy string, tak mu tam zustane zalozmeni radku. Viz Bertram, ktery mu to dokazal pres var_dump($a);.
Spravne by tam melo byt $a=explode(",\n", $array); |
||
Časová prodleva: 10 let
|
0