Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja która tworzy tablicę z innej tablicy gdzie ostatnia wartość
Forum PHP.pl > Forum > PHP
starach
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 :/
nospor
  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. ?>
starach
Dzięki nospor smile.gif
nevt
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. ?>
starach
Jestem taki zamulony że nie rozumiem an jednego ani drugiego sposobu, chyba pójdę sobie na jakiś spacer, przewietrzyć przestrzeń między uszami.
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.