Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak podmienić klucze w tablicy asocjacyjnej?
newmala
post 18.09.2012, 09:03:57
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.01.2012

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


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ł?

Go to the top of the page
+Quote Post
vermis
post 18.09.2012, 09:32:54
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


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. }


Ten post edytował vermis 18.09.2012, 09:33:24


--------------------
Go to the top of the page
+Quote Post
newmala
post 18.09.2012, 09:45:17
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.01.2012

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


No tak, dzięki, niekiedy się za dużo kombinuje. Jeszcze tylko dodam jednego unset'a i jest ok.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 19:11