Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przepisywanie tablicy
Forum PHP.pl > Forum > Przedszkole
katomasz
Czy jest jakiś prosty i szybki sposób, aby przepisać zawartość jednej tablicy do drugiej. Mam trzy tablice o różnych rozmiarach i w zależności od wyboru potrzebuję przepisać zawartość jednej z nich do tablicy o nazwie przypuśćmu $tablica[]. Jak to zrobić?
nospor
  1. <?php
  2.  
  3. $tablica1 = $tablica2;
  4. //lub funckcja array_merge ktora laczy tablice
  5.  
  6.  
  7. ?>
katomasz
Niestety, ale to nie działa. Przy wypisywaniu elementów tablicy pierwotnej (nazwijmy ją $stara) można zliczyć jej elementy i je wypisać. Natomiast po wykonaniu operacji przepisania
  1. <?php
  2.  
  3. $nowa=$stara;
  4.  
  5. ?>

tablica okazuje się być pusta.
nospor
Nie wiem jak ty to robisz, ale jak ja robie to dziala. Masz przyklad jak robilem:
  1. <?php
  2.  
  3. $stara = array(1,2,3,4);
  4. $nowa = $stara;
  5. $stara[0]=10;//tu zmieniam wartosc starej aby sprawdzic czy w nowej sie nie zmienila. wynik poz
  6. tywny. W nowej nie zmiinla sie wartosc
  7.  
  8. //tu se je wypisz
  9.  
  10.  
  11. ?>
katomasz
A ja robię to w ten sposób:
  1. <?php
  2.  
  3. $glowna=array('Historia','Władze i pracownicy','Działalność i usługi','Lokalizacja','Inwestorzy');
  4. $aktual=array('Archiwum', 'Nowości', 'Z ostatniej chwili');
  5. $info=array('Zdjęcia', 'Folder informacyjny');
  6. $przet=array('Przetargi nowe', 'Przetargi zakończone');
  7. $wewn=array('Informacje', 'Komunikaty', 'Ważne');
  8. $dane=array('Dane o pracownikach');
  9.  
  10. ?>

Następnie sprawdzam, którą tablicę wykorzystać:
  1. <?php
  2.  
  3. if ($menu==&#092;"glowna\")
  4.  $tablica=$glowna;
  5. elseif ($menu==&#092;"aktual\")
  6.  $tablica=$aktual;
  7. elseif ($menu==&#092;"info\")
  8.  $tablica=$info;
  9. elseif ($menu==&#092;"przet\")
  10.  $tablica=$przet;
  11. elseif ($menu==&#092;"wewn\")
  12.  $tablica=$wewn;
  13. else
  14.  $tablica=$dane;
  15.  
  16. ?>

po czym:
  1. <?php
  2.  
  3. $i=count($tablica);
  4. for ($j=0; $j<$i; $j++)
  5. {
  6. echo $i.&#092;"-\".$j.\"-\".$tablica[$j];
  7. }
  8.  
  9. ?>

wypisywanie zmiennych $i oraz $j jest tylko w celu sprawdzenia, czy jest coś w tablicy. Niestety, tam nic nie ma, a wartość $tablica[$j] wynosi array.
nospor
Nie wiem o co ci chodzi. Wprowadzilem twj kod, za $menu podstawilkem glowna i wszystko jest ok
Cytat
5-0-Historia5-1-W³adze i pracownicy5-2-Dzia³alno¶æ i us³ugi5-3-Lokalizacja5-4-Inwestorzy


a gdie dokladnie ty inicjujesz i wyswietlasz $tablica? MOże jest to zmienna lokalna która przy wyswietlaniu jest niwidoczna.
dr_bonzo
UWAGA, czarna magia:
  1. <?php
  2. $menu = 'glowna';
  3.  
  4. $arrMenu = array(
  5. 'glowna' => array('Historia','Władze i pracownicy','Działalność i usługi','Lokalizacja','Inwestorzy'),
  6. 'aktual' => array('Archiwum', 'Nowości', 'Z ostatniej chwili'),
  7. 'info' => array('Zdjęcia', 'Folder informacyjny'),
  8. 'przet' => array('Przetargi nowe', 'Przetargi zakończone'), 
  9. 'wewn' => array('Informacje', 'Komunikaty', 'Ważne'), 
  10. 'dane' => array('Dane o pracownikach')
  11. );
  12.  
  13. if ( array_key_exists( $menu, $arrMenu ) )
  14. {
  15. $tablica = $arrMenu[ $menu ];
  16. }
  17. else
  18. {
  19. $tablica = array( 'Brak takiej strony' ); // mozna zmienic
  20. }
  21.  
  22. print_r( $tablica );
  23. ?>


I to nie dziala?
katomasz
OK. Działa. Dzięki
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.