Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Obrađivanje nizova (iliti array-a)

[es] :: PHP :: Obrađivanje nizova (iliti array-a)

[ Pregleda: 2982 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

JovanT
Jovan Turanjanin
Niš

Član broj: 35633
Poruke: 473
213.244.208.*

Jabber: Zeus@elitesecurity.org
ICQ: 263033789
Sajt: www.turanjanin.net


+17 Profil

icon Obrađivanje nizova (iliti array-a)26.03.2005. u 16:40 - pre 232 meseci
Bavim se parsiranjem jednog RSS izvora (sportski rezultati) pa se mučim oko nizova. Rezultat koji daje RSS parser je ovakvog oblika:

Code:

Array
(
    [0] => Array
        (
            [Podaci] => (No)001/151    (GMT + 2h,Start at)21:10    (Home Team)RIVER PLATE    (Away Team)RACING CLUB    (Status)NotStartYet    (Minute)-    (Full Time)-    (Half Time)-    (Extra Time)-    (Penalties)-    (Home Yellow Cards)-    (Home Red Cards)-    (Away Yellow Cards)-    (Away Red Cards)-    (Scorers)-
            [Liga] => Country_League: ARGENTINA_AG
        )

    [1] => Array
        (
            [Podaci] => (No)002/151    (GMT + 2h,Start at)21:30    (Home Team)COLON SANTA FE    (Away Team)QUILMES    (Status)NotStartYet    (Minute)-    (Full Time)-    (Half Time)-    (Extra Time)-    (Penalties)-    (Home Yellow Cards)-    (Home Red Cards)-    (Away Yellow Cards)-    (Away Red Cards)-    (Scorers)-
            [Liga] => Country_League: ARGENTINA_AG
        )

    [2] => Array
        (
            [Podaci] => (No)003/151    (GMT + 2h,Start at)21:30    (Home Team)HURACAN TRES ARROYOS    (Away Team)ALMAGRO    (Status)NotStartYet    (Minute)-    (Full Time)-    (Half Time)-    (Extra Time)-    (Penalties)-    (Home Yellow Cards)-    (Home Red Cards)-    (Away Yellow Cards)-    (Away Red Cards)-    (Scorers)-
            [Liga] => Country_League: ARGENTINA_AG
        )
    .
    .
    .



Ja bih želeo da skripta izlista samo jednu određenu ligu nakon čega bih pozvao funkciju za parsiranje elementa Podaci i prikazao domaći i gostujući tim, kao i trenutni rezultat. Kako bi ovo moglo da se uradi?
Nije znanje samo znati, već je znanje - znanje dati.

Piši ćirilicom! | Surfujte brže, sigurnije i lakše | Najveća niška online zajednica

 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Obrađivanje nizova (iliti array-a)26.03.2005. u 18:58 - pre 232 meseci
xe xe xe
'oćeš da kupiš skriptu koja to radi?

Šalim se naravno, ti želiš kao što sam ja uradio na svom sajtu.

Na prvoj strani izlistaj([$i]['liga']) sve lige i smesti ih u neku drugu promenljivu(niz) kao članove niza, zatim uradi nad tim nizom array_unique kao bi uklonio duplikate i npr. sortiraj članove tog niza (ja sam kod sebe uvek stavio da prvo ide naša liga a ostale sam sortirao). Zatim odštampaj taj niz a kao promenjlivu koju ćeš prosleđivati koristi npr naziv lige kako bi na sledećoj strani pronašao sve utakmice te lige. Zatim na sledećoj strani uzmi ponovo rezultate koje vraća parser i izdvoj sve članove niza gde se liga poklapa sa promenjlivom koju si prosledio putem get metode. I zatim parsiraš vrednosti člana niza podaci tako što ćeš uraditi explode i zatim iz tog novog niza štampaj ono što ti je potrebno.

Pozdrav.
Banned - Not available
 
Odgovor na temu

JovanT
Jovan Turanjanin
Niš

Član broj: 35633
Poruke: 473
*.com
Via: [es] mailing liste

Jabber: Zeus@elitesecurity.org
ICQ: 263033789
Sajt: www.turanjanin.net


+17 Profil

icon Re: Obrađivanje nizova (iliti array-a)26.03.2005. u 21:20 - pre 232 meseci
Pa ti me nisi baš razumeo. Ja sam razumeo postupak koji si ti primenio pri izradi stranice i nije mi problem da shvatim kako bi to trebalo da ide. Jedino nisam siguran kako da baratam nizovima. Za prvi korak sastavio sam ovako nešto:

Code:

$i = 0;
while ($i < 500) {
    $p1[] = $lige[$i]['Liga'];
    $i++;
}
$p1 = array_unique ($p1);
sort ($p1);


A za prikazivanje utakmica u određene lige pokušao sam sa ovim

Code:

$i = 0;
while ($i < 500) {
    if ($lige[$i]['Liga'] == "Country_League: ARGENTINA_AG") {
        $utakmice[] = $lige[$i];
    }
    $i++;
}


i to mi radi nekako samo nisam siguran da je ovo i najbolje rešenje. Postoje li neko elegantnije ili ću morati da se oslonim na ovo?
Nije znanje samo znati, već je znanje - znanje dati.

Piši ćirilicom! | Surfujte brže, sigurnije i lakše | Najveća niška online zajednica

 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Obrađivanje nizova (iliti array-a)27.03.2005. u 08:26 - pre 232 meseci
Ti nećeš uvek imati 500 članova niza kojeg vraća rss parser. Ovako sam ja nešto mislio (na brzinu):
Code:

// imas niz $rezultati kojeg vraca rss parser

$rezultati = Array( Array( 'Podaci' => '(No)001/151    (GMT + 2h,Start at)21:10    (Home Team)RIVER PLATE    (Away Team)RACING CLUB    (Status)NotStartYet    (Minute)-    (Full Time)-    (Half Time)-    (Extra Time)-    (Penalties)-    (Home Yellow Cards)-    (Home Red Cards)-    (Away Yellow Cards)-    (Away Red Cards)-    (Scorers)-',
                           'Liga' => 'Country_League: ARGENTINA_AG'
              ),
                    Array( 'Podaci' => '(No)002/151    (GMT + 2h,Start at)21:30    (Home Team)COLON SANTA FE    (Away Team)QUILMES    (Status)NotStartYet    (Minute)-    (Full Time)-    (Half Time)-    (Extra Time)-    (Penalties)-    (Home Yellow Cards)-    (Home Red Cards)-    (Away Yellow Cards)-    (Away Red Cards)-    (Scorers)-',
                          'Liga' => 'Country_League: ARGENTINA_AG'
                         ),

                    Array( 'Podaci' => '(No)003/151    (GMT + 2h,Start at)21:30    (Home Team)HURACAN TRES ARROYOS    (Away Team)ALMAGRO    (Status)NotStartYet    (Minute)-    (Full Time)-    (Half Time)-    (Extra Time)-    (Penalties)-    (Home Yellow Cards)-    (Home Red Cards)-    (Away Yellow Cards)-    (Away Red Cards)-    (Scorers)-',
                           'Liga' => 'Country_League: ARGENTINA_AG'
                         )
                );


switch(@$_GET['action']) {
  case 'list':
    $liga = urldecode($_GET['liga']);
    for($i=0; $i<count($rezultati); $i++) {
      if($rezultati[$i]["Liga"] = $liga) {
        echo $rezultati[$i]["Podaci"].'<br /><br />';
      }
    }
  break;
  default:
    $lige = array();
    for($i=0; $i<count($rezultati); $i++)
      $lige[] = $rezultati[$i]['Liga'];
    $lige = array_unique($lige);
    sort ($lige);
    reset($lige);
    for ($j=0; $j<count($lige); $j++)
      echo '<a href="'.$_SERVER['PHP_SELF'].'?action=list&liga='.urlencode($lige[$j]).'">'.$lige[$j].'</a>';
  break;
}


E sad ti umesto:
Code:
echo $rezultati[$i]["Podaci"].'<br /><br />';


Parsiraj $rezultati[$i]["Podaci"] i prikazi ono što ti je potrebno
Banned - Not available
 
Odgovor na temu

[es] :: PHP :: Obrađivanje nizova (iliti array-a)

[ Pregleda: 2982 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.