Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [array] z array(x, x, x) do $arr[x][x][x] = $val;
bim2
post
Post #1





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Z tablicy:
Cytat
Array ( [0] => imie [1] => pierwsze [2] => hehe )

potrzebuje zrobić:
  1. <?php
  2. (
  3.  [imie] => Array
  4. (
  5.  [pierwsze] => Array
  6. (
  7.  [hehe] => 'cos'
  8.  
  9. )
  10.  
  11. )
  12.  
  13. )
  14. ?>

Nie mogę sobie poradzić. Kod jaki mam nie nadaje się do pokazania, no ale cóż:
  1. <?php
  2. $sData = '';
  3. foreach($aArr as $iKey => $sParameter)
  4. {
  5. $sData .= '[''.$sParameter.'']';
  6. }
  7.  
  8. eval('$this->aData'.$sData.'[''.$sWhat.''] = ''.$sOn.'';');
  9. ?>

Czysto teoretycznie to działa, ale nie chce używać evala. Czuje, że da się zrobić to prościej, ale coś dziś przymróżony jestem. ;/

EDIT: Poprawiłem wcięcia tylko, nic nie zmieniałem. Więc nie ma co :|

Ten post edytował bim2 1.03.2008, 20:09:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
em1X
post
Post #2





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Zadziała na dowolnej głębokości tablicy:

  1. <?php
  2. function & convert($array, $value)
  3. {
  4. $new = array();
  5.  
  6. for ($i=0; $i
  7. {
  8. $data = each($array);
  9. $klucz = $data[1];
  10.  
  11. if ($i == 0)
  12. {
  13. $new[$klucz] = array();
  14. $next =& $new[$klucz];
  15. }
  16. else
  17. {
  18. if ($i == count($array) - 1)
  19. {
  20. $next[$klucz] = $value;
  21. return $new;
  22. }
  23. else
  24. {
  25. $next[$klucz] = array();
  26. $next =& $next[$klucz];
  27. }
  28. }
  29. }
  30. }
  31. ?>


przykład:
  1. <?php
  2. $array = array("imie", "pierwsze", "hehe");
  3. $new = convert($array, 'cos');
  4.  
  5. print "<pre>";
  6. print_r($new);
  7. ?>


wynik:
Kod
Array
(
    [imie] => Array
        (
            [pierwsze] => Array
                (
                    [hehe] => value
                )
        )
)


Ten post edytował em1X 1.03.2008, 21:11:22
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: 9.10.2025 - 08:09