Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak podmienić klucze w tablicy asocjacyjnej?
Forum PHP.pl > Forum > Przedszkole
newmala
Mam następującą tabelę :

Array
(

[id] => 36
[termin] => 1
[nazwisko1] => Kowalski
[imie1] => Jan
[nazwisko2] => Kozłowski
[imie2] => Bartek
[nazwisko3] => Nowacki
[imie3] => Marcin
)

Chcę usunąć dane z nr 2 i dane z numerem 3 podmienić na 2, aby w wyniku otrzymać tabelę:
Array
(

[id] => 36
[termin] => 1
[nazwisko1] => Kowalski
[imie1] => Jan

[nazwisko2] => Nowacki
[imie2] => Marcin
)

znam numer aktualny danej czyli mam zmienną nr i zmienną i, która mówi o ile mam zmienić klucz.

  1.  
  2. $nr = 3; // a dane z numerem 3 mam podmienić na 2
  3. $i= 2; //z tym numer muszę usunąć dane z tabeli
  4.  
  5. if($nr!=($i+1))
  6. {
  7. foreach ($tab as $k=>$v)
  8. {
  9. if (preg_match("/^nazwisko".$i"/", $k) == 1) unset ($tab[$k]);
  10. if (preg_match("/^nazwisko".$nr"/", $k) == 1) // tutaj muszę podmienić klucz nazwisko3 na nazwisko 2?
  11. }
  12. }


Czytał już o array_splice, array_combine, ale to nie to, według mnie.
Macie jakiś pomysł?

vermis
A po co ten preg_match()?
O ile dobrze zrozumiałem to tak;

  1. if ($k == 'nazwisko' . $i) {
  2. unset($tab[$k])
  3. }
  4. if ($k == 'nazwisko' . $nr) {
  5. $tab['nazwisko' . $i] = $tab['nazwisko' . $nr];
  6. }
newmala
No tak, dzięki, niekiedy się za dużo kombinuje. Jeszcze tylko dodam jednego unset'a i jest ok.
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.