Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja która tworzy tablicę z innej tablicy gdzie ostatnia wartość, tablicy macierzystej jest wartością nowej a poprzednie kluczami
starach
post
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Cześć powiedzmy że mam taką tablicę
  1. <?php
  2. $arr = array('kategoria', 'jedzenie', 'owoce', 'banan');
  3. ?>
I chcę z niej otrzymać
  1. <?php
  2. $arr2 = array('kategoria' => 
  3. array('jedzenie' => 
  4. array('owoce' => 'banan')
  5. )
  6. );
  7. // Czyli coś takiego
  8. $arr2['kategoria']['jedzenie']['owoce'] = 'banan';
  9. ?>
Najprawdopodobniej rozwiązanie jest bardzo proste, ale mam straszną pustkę w głowie a muszę to mieć na dzisiaj :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. $arr = array('kategoria', 'jedzenie', 'owoce', 'banan');
  3.  
  4. $newArray = array();
  5. $tmp = &$newArray;
  6. $c = count($arr);
  7. for($i=0;$i<$c-1; $i++){
  8. $tmp[$arr[$i]] = array();
  9. $tmp = &$tmp[$arr[$i]];
  10. }
  11. $tmp = $arr[$c-1];
  12. echo '<pre>';
  13. print_r($newArray);
  14. echo '</pre>';
  15. ?>
Go to the top of the page
+Quote Post
starach
post
Post #3





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Dzięki nospor (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nevt
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


a może rekurencyjnie?
  1. <?php
  2. function parse_array($val)
  3. {
  4. if(count($val) > 1)
  5. return array(array_shift($val) => parse_array($val));
  6. else
  7. return array_shift($val);
  8. }
  9.  
  10. $val = array('kategoria', 'jedzenie', 'owoce', 'banan');
  11. $res = parse_array($val);
  12.  
  13. print_r($val);
  14. print_r($res);
  15. ?>
Go to the top of the page
+Quote Post
starach
post
Post #5





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Jestem taki zamulony że nie rozumiem an jednego ani drugiego sposobu, chyba pójdę sobie na jakiś spacer, przewietrzyć przestrzeń między uszami.
Go to the top of the page
+Quote Post

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: 26.09.2025 - 12:36