Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kolejność wartości
Forum PHP.pl > Forum > Przedszkole
piotrooo89
Mam taki mały problem mianowicie pobieram do funkcji daty z opisami.

wygląda to tak:

  1. <?php
  2. function pokaz ($url)
  3. {
  4.    echo data_z_url;
  5.    echo opis_z_url;
  6. }
  7. ?>


i teraz daty dostaje już posortowane, ale jak wywołam funkcje tak:

  1. <?php
  2. pokaz(adres1);
  3. pokaz(adres2);
  4. ?>


to pierw są posortowane dane z pierwszego adresu a następnie z drugiego adresu. a ja chce żeby one były "zmiksowane".

tzn.

obecne wyświetlam tak

dana1_adres1
dana2_adres1
dana3_adres1

dana1_adres2
dana2_adres2
dana3_adres2


a chce uzyskać efekt taki:

dana1_adres1
dana1_adres2
dana2_adres1
dana2_adres2
dana3_adres1
dana3_adres2

aha no i podanych adresów może być kilka a może być jeden. i teraz moje pytanie jak to optymalnie posortować?
Spawnm
może daj to w $this->tablica[]
i potem wywołaj sortuj()
piotrooo89
ale ja tego nie robię w OOP. tylko normalnie strukturalnie.
Darti
A co za różnica ? tablica to tablica smile.gif wrzuć w tablicę, zrób sortuj albo random czy co tam wymślisz i pojedź jakimś foreach
piotrooo89
dobra powiem więcej. dane odbieram z RSS'a za pomocą SimpleXML i je tam obrabiam.

tak to wygląda:

  1. <?php
  2. function PodajPodcasty ($url)
  3. {
  4.    $miesiace['Jan'] = 'Sty';
  5.    $miesiace['Feb'] = 'Lut';
  6.    $miesiace['Mar'] = 'Mar';
  7.    $miesiace['Apr'] = 'Kwi';
  8.    $miesiace['May'] = 'Maj';
  9.    $miesiace['Jun'] = 'Cze';
  10.    $miesiace['Jul'] = 'Lip';
  11.    $miesiace['Aug'] = 'Sie';
  12.    $miesiace['Sep'] = 'Wrz';
  13.    $miesiace['Oct'] = 'Paź';
  14.    $miesiace['Nov'] = 'Lis';
  15.    $miesiace['Dec'] = 'Gru';
  16.    
  17.    $xml = simplexml_load_file($url);
  18.  
  19.    foreach($xml->channel->item as $single)
  20.    {
  21.        $data = explode(' ', $single->pubDate);
  22.        
  23.        echo '<div class="new_track">
  24.                <span class="date">'.$data[1].' '.$miesiace[$data[2]].'</span>
  25.                <div class="main_track">
  26.                    <span class="title">'.$single->title.'</span>
  27.                    <span class="desc">'.$single->description.'</span>
  28.                </div>
  29.                <div class="play">
  30.                    <a href="'.$_SERVER['PHP_SELF'].'?show=single&guid='.$single->guid.'&url='.base64_encode($url).'">
  31.                    <img src="play.JPG" alt="PLAY" />
  32.                    </a>
  33.                </div>
  34.            </div>';
  35.    }
  36. }
  37. ?>


i teraz jak wywołam 2x funkcje to jest lipa, bo mi nie miesza. myślałem żeby np podawać jako argument funkcji tablice adresów i iterować po niej ale czy to dobry pomysł?
erix
  1. <?php
  2. $miesiace['Jan'] = 'Sty';
  3.   $miesiace['Feb'] = 'Lut';
  4. ?>

Stary, ale się męczysz... setlocale" title="Zobacz w manualu PHP" target="_manual + date" title="Zobacz w manualu PHP" target="_manual...

Tak XML-a nie posortujesz... Wyrwałeś za dużo z kontekstu.
piotrooo89
dostaje już tablice w postaci:

Kod
Array (
    [0] => Array (
        [data] => 29
        [title] => SimpleXMLElement Object ( [0] => Dziś ostatnia audycja! ) )
    [1] => Array (
        [data] => 22
        [title] => SimpleXMLElement Object ( [0] => Audycja pełna ludzi ) )
)


i teraz moje pytanie jak pozbyć się tego SimpleXMLElement Object, tzn jak dostać taką tablice:

Kod
Array (
    [0] => Array (
        [data] => 29
        [title] =>  Dziś ostatnia audycja!  )
    [1] => Array (
        [data] => 22
        [title] => Audycja pełna ludzi  )
)
Fifi209
Cytat(piotrooo89 @ 11.07.2009, 08:32:38 ) *
dostaje już tablice w postaci:

Kod
Array (
    [0] => Array (
        [data] => 29
        [title] => SimpleXMLElement Object ( [0] => Dziś ostatnia audycja! ) )
    [1] => Array (
        [data] => 22
        [title] => SimpleXMLElement Object ( [0] => Audycja pełna ludzi ) )
)


i teraz moje pytanie jak pozbyć się tego SimpleXMLElement Object, tzn jak dostać taką tablice:

Kod
Array (
    [0] => Array (
        [data] => 29
        [title] =>  Dziś ostatnia audycja!  )
    [1] => Array (
        [data] => 22
        [title] => Audycja pełna ludzi  )
)


Przeleć pierwszą tablicę jakąś pętelką i stwórz nową tablicę.
piotrooo89
właśnie nie bardzo.

  1. <?php
  2. foreach($xml->channel->item as $single)
  3. {
  4.    $data = explode(' ', $single->pubDate);
  5.            
  6.    $podcast_long[$i]['data'] = $data[1].' '.$miesiace[$data[2]];
  7.    $podcast_long[$i]['title'] = $single->title;
  8. }
  9. ?>


i teraz chce stworzyć nową tablice w taki sposób:

  1. <?php
  2. foreach($podcast_long as $pokaz)
  3. {
  4.    foreach($pokaz as $key => $val)
  5.    {
  6.        $tab[$key] = $val;
  7.    }
  8. }
  9. ?>


i cały czas dostaje to samo.

//EDIT

aha jak echuje te zmienne to normalnie tekst się wyświetla tylko takie cyrki dzieją się jak chce to do tablicy wrzucić.
Fifi209
Cytat(piotrooo89 @ 11.07.2009, 08:56:25 ) *
aha jak echuje te zmienne to normalnie tekst się wyświetla tylko takie cyrki dzieją się jak chce to do tablicy wrzucić.


Kurde, miałem też taki problem z xml'ami kiedyś. Strasznie denerwujące, to chyba przez samo php i jego "automatyczne" referencje.
piotrooo89
no ale jakie rozwiązanie, próbowałem używać klasy Iteratora, ale niekompatybilna... jakie rady?
erix
Zapomnieliście o rzutowaniu do stringa. tongue.gif

Zakładając, że:
Kod
[title] => SimpleXMLElement Object ( [0] => Dziś ostatnia audycja! ) )

To np:
  1. <?php
  2. $arr['title'] = $obj->title; // coś w ten deseń
  3. ?>

Klep:
  1. <?php
  2. $arr['title'] = (string)$obj->title; // coś w ten deseń
  3. ?>

i ma być.

Cytat
próbowałem używać klasy Iteratora, ale niekompatybilna

To znaczy?
piotrooo89
kurde Przemek, idealnie smile.gif dzięki, a możesz mi powiedzieć dlaczego trzeba rzutować na stringa? z object na string? dobrze rozumiem?
erix
A słyszałeś o magicznej metodzie obiektów __toString? snitch.gif
piotrooo89
słyszałem. aż mi głupio wstydnis.gif to naprawde nie było trudne :/
erix
Nie przejmuj się, też jak zaczynałem z SimpleXML, to nie przypuszczałbym, że to w taki pierdołowaty sposób da się załatwić...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.