Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zamienić wielowymiarową tablice asocialną na plik XML
Forum PHP.pl > Forum > PHP
akurczyk
Mam taką tablicę:
  1. <?php
  2. $tablica["klucz1"] = "wartość1";
  3. $tablica["klucz2"]["klucz1"] = "wartość2";
  4. $tablica["klucz3"] = "wartość3";
  5. $tablica["klucz4"]["klucz1"]["klucz1"]["klucz1"] = "wartość4";
  6. $tablica["klucz5"]["klucz1"] = "wartość5";
  7. $tablica["klucz6"] = "wartość6";
  8. ?>

I chciałbym ją zamienić na:
Kod
<tablica>
  <klucz1>wartość1</klucz1>
  <klucz2>
    <klucz1>wartość2</klucz1>
  </klucz2>
  <klucz3>wartość3</klucz3>
  <klucz4>
    <klucz1>
      <klucz1>
        <klucz1>wartość4</klucz1>
      </klucz1>
    </klucz1>
  </klucz4>
  <klucz5>
    <klucz1>wartość5</klucz1>
  </klucz5>
  <klucz6>wartość6</klucz6>
</tablica>

Jak to zrobić za pomocą PHP?
starach
pętla foreach, rekurencja na is_array() == true i http://pl.php.net/manual/pl/refs.xml.php
akurczyk
dzięki próbowałem z while ale wtedy musiałem resetować kompa bo się firefox wieszał
Riklaunim
hm.... http://poradydlawebmasterow.iswift.eu/porada.php?porada=16

Kolejne pytanie na twoją stronę?


Cytat
dzięki próbowałem z while ale wtedy musiałem resetować kompa bo się firefox wieszał

LOL. Raczej miałeś nieskończoną pętlę tongue.gif
akurczyk
Przyznaję się bez bicia miałem nieskończoną pętlę:)
  1. <?php
  2. while($tablica) {
  3. echo 1;
  4. }
  5. ?>

I pehape wyświetla w nieskończoność (do resetu) 1...

Na stronę to pójdzie.
Ale głównie chodziło mi o przekonwertowanie czegoś do XML, a wcześniej wyświetlenie tego.

A masz coś przeciwko temu że robię tą stronkę?questionmark.gif
Chyba lepiej żeby się uczył programować i poznane rzeczy opisywał na stronce niż grał godzinami w jakąś gierkę?questionmark.gif

Mam kolejny problem:
  1. <?php
  2. $tablica["klucz1"] = "wartość1";
  3. $tablica["klucz2"]["klucz1"] = "wartość2";
  4. $tablica["klucz3"] = "wartość3";
  5. $tablica["klucz4"]["klucz1"]["klucz1"]["klucz1"] = "wartość4";
  6. $tablica["klucz5"]["klucz1"] = "wartość5";
  7. $tablica["klucz6"] = "wartość6";
  8. foreach($tablica as $wartosc) {
  9.    if(is_array($wartosc)) {
  10.        //i co teraz?questionmark.gif
  11.    } else {
  12.        echo "$wartosc<br>";
  13.    }
  14. }
  15. ?>
Riklaunim
Programowanie to nauka szukania rozwiązania. To o co pytasz to podstawy dostępne powszechnie w sieci. Pytając o wszystko możesz tak nauczyć się składni, ale nie programowania - rozwiązywania danego zadania bez pytania o gotowiec. Też nie rób niczego na siłę. Zanim zabierzesz się za tworzenie "CMSa" lub inne wiekopomne dzieło warto pobawić się po kolei XHTMLem, CSSem, regułami tworzenia dobrych i funkcjonalnych stron i dopiero po tym do dynamicznie generowanych stron www. smile.gif
akurczyk
htmlem bawiłem się jak miałem 6 lat.
css za komentowałem
a php czę się teraz:)
zobacz kod?
co muszę jeszcze dodać??
mike
Cytat(akurczyk @ 24.10.2008, 21:34:54 ) *
htmlem bawiłem się jak miałem 6 lat.
Nie rozśmieszaj mnie. I nie obrażaj innych, którzy umieją to czym Ty pomiatasz mówiąc buńczucznie co to nie Ty. I popracuj nad wysławianiem się. Masz braki w podstawowej komunikacji. Brak końcówek, mnóstwo literówek, interpunkcja leży. Pokory trochę dziecko drogie.

Cytat(akurczyk @ 24.10.2008, 21:34:54 ) *
zobacz kod?
co muszę jeszcze dodać??
Co dodać? Wszystko. Na razie nie masz nic.

Na początek poczytaj o stringach. Nawet zmiennej poprawnie nie potafisz wyświetlić.
Przede wszystkim potrzebujesz pętli foreach w wersji z dostępem do kluczy. Później zaprzyjaźnij się z is_array() (to już masz). Później zainteresuj się pojęciem rekurencja, to może być najszybszy sposób do osiągnięcia celu.
A na koniec żeby to był XML to musisz wysłać nagłówek funkcją header() (gotowiec w manualu).
pawkow
http://www.phpclasses.org/browse/file/9370.html - proszę bardzo winksmiley.jpg
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.