Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana nazwy klucza
Forum PHP.pl > Forum > Przedszkole
henio
Czy istnieje funkcja która zmieni nazwę klucza w tablicy asocjacyjnej, np dodając jakiś prefiks. Albo wykona tą operację dla wszystkich kluczy.
darko
Jeden temat wystarczy http://forum.php.pl/index.php?showtopic=184879&hl=. Nawet jeśli nie istnieje, to w kilkanaście sekund możesz napisać własną. Nawet zwykły foreach załatwia sprawę:
  1. $prefix = 'test_';
  2. $nowaTablica = array();
  3. foreach($mojaTablica as $klucz => $wartosc)
  4. {
  5. $nowaTablica[$prefix . $klucz] = $wartosc;
  6. }

Tadaaam smile.gif
henio
No tak, tylko to trochę pamięci się marnuje na to. Ta funkcja po prostu dubluje elementy w tablicy. Chciałbym wiedzieć czy można to zrobić bez tworzenia nowej tablicy, lub nowego pola w tablicy isteniejącej. Tylko edycja nazwy.
cycofiasz
  1. $prefix = 'test_';
  2.  
  3. foreach($mojaTablica as $klucz => $wartosc)
  4. {
  5. unset($mojaTablica[$klucz]);
  6.  
  7. $mojaTablica[$prefix . $klucz] = $wartosc;
  8. }
henio
Czy przypadkiem ten kod nie powoduje zapętlenia? Przecież w każdym obrocie pętli dodajesz nowy element do tablicy. A pętla działa aż przejdzie wszystkie elementy tablicy, wiec będzie także przeglądać ten nowo dodane.
cycofiasz
Gdyby powodował to bym go nie wstawiał. Przetestuj go sam.

Cytat
foreach operates on a copy of the specified array and not the array itself
darko
array_walk operuje bezpośrednio na tablicy, a o zużycie pamięci się nie martw.
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.