Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwersja tablicy na objekt
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Mam taki kod:
  1. <?php
  2. $tablica["klucz1"] = "wartość 1";
  3. $tablica["klucz2"]["klucz3"] = "wartość 2";
  4. $tablica["klucz4"] = "wartość 3";
  5. $tablica["klucz5"]["klucz6"]["klucz7"]["klucz8"] = "wartość 4";
  6. $tablica["klucz9"]["klucz10"] = "wartość 5";
  7. $tablica["klucz11"] = "wartość 6";
  8. function rekurencja($tablica) {
  9.    if(is_array($tablica)) {
  10.        foreach($tablica as $klucz => $wartosc) {
  11.            echo "$klucz<br>";
  12.            rekurencja($wartosc);
  13.        }
  14.    } else {
  15.        echo "$tablica<br>";
  16.    }
  17. }
  18. rekurencja($tablica);
  19. ?>

Zwraca on:
Kod
klucz1
wartość 1
klucz2
klucz3
wartość 2
klucz4
wartość 3
klucz5
klucz6
klucz7
klucz8
wartość 4
klucz9
klucz10
wartość 5
klucz11
wartość 6

Co muszę zrobić aby przekonwertował on tablicę na obiekt?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kopix
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 4
Dołączył: 28.08.2007
Skąd: Katowice

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. define("UNIQ_FIELD_ID", uniqid());
  4.  
  5. class ToObjectMapArray{
  6.  
  7.    public function __construct($resource){
  8.  
  9.        if(is_array($resource)){
  10.  
  11.            foreach($resource as $key => $value){
  12.  
  13.                $this->$key = new ToObjectMapArray($value);
  14.                            
  15.            }
  16.        
  17.        } else{
  18.  
  19.            $this->{UNIQ_FIELD_ID} = $resource;
  20.        
  21.        }
  22.    
  23.    }
  24.  
  25.    public function __toString(){
  26.  
  27.        return strval($this->{UNIQ_FIELD_ID});
  28.    
  29.    }
  30.  
  31.  
  32. }
  33. ?>


Dość dawno temu miałem ten sam problem i napisałem sobie taką klasę, która właśnie konwertuje tablice na obiekt i obsługuje nieograniczone zagnieżdżanie.

W użyciu wygląda to tak:
  1. <?php
  2.  
  3. $obiekt = new ToObjectMapArray($tablica);
  4.  
  5. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 03:28