Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablica z 6 rekordami - jak zmienić kolejność
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Mam taką tablicę:
$ustaw=array(0,1,2,3,4,5)
Jaką najłatwiej przesunąć wszystkie rekordy od 0 do 4 o jeden do przodu, a 5 wrzucić na początek? Tj. przerobić na taką tablicę:
array(5,0,1,2,3,4) - chodzi o wartości, nie klucze. I przy ponownym zastosowaniu tej zmiany tablica zmieniłaby się na: array(4,5,0,1,2,3). Napisałem do tego takie coś:
\\ pobieram ostatni rekord, aby go nie stracić podczas nadpisywania
$last=$ustaw[$serw][5];
\\ rekordom od 5 do 1 nadaje wartości ich poprzednikom - 5 - 4, 4 - 3 itp.
for($l=5;$l--;$l>0){
$ustaw[$serw][$l]=$ustaw[$serw][$l-1];}
\\ pierwszemu rekordowi nadaje ostatni, zapisany na początku skryptu, rekord
$ustaw[$serw][0]=$last;
I wszystko ok, oprócz wrzucenia czwórki na koniec - tworzy mi to tablicę (5,0,1,2,3,5).

Już ok - w pętli for najpierw dałem działanie, a potem warunek wstydnis.gif Ale pętla i tak jakoś działała biggrin.gif

Ten post edytował Apocalyptiq 17.10.2008, 14:26:55


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
_olo_1984
post
Post #2





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


  1. <?php
  2. $ustaw = (isset($_SESSION['tab'])) ? $_SESSION['tab'] : array('0','1','2','3','4','5');
  3. $last=$ustaw[5];
  4. echo $last;
  5. for($l=5;$l>0;$l--){
  6.    $ustaw[$l]=$ustaw[$l-1];
  7. }
  8. $ustaw[0]=$last;
  9. $_SESSION['tab']=$ustaw;
  10. print_r($_SESSION['tab']);
  11. ?>


u mnie to poprawnie przestawia elementy. Po każdym odświerzeniu strony


--------------------
awake
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Dzięki, ale muszę to zrobić bez sesji - ten kod występuje w skrypcie PHP, który wykonuje się poza stroną (odpalany przez CRONa) smile.gif


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Kombinujecie jak koń pod górkę:
  1. <?php
  2. $a = array(0,1,2,3,4,5);
  3.  
  4. print_r($a);
  5.  
  6.  
  7. print_r($a);
  8. ?>


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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 Aktualny czas: 21.08.2025 - 08:56