Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z tablicą
tommy567
post 27.03.2006, 12:33:04
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 13.10.2004

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


Witajcie!

Mam następujący problem z tablicą:

Wyciągam sobie z bazy wynik i zapisuej w postaci tablicy w php. Chcę zrealizować następującą rzecz:

Żeby powiedzmy na jakiś warunek w skrypcie (nieistotne jaki) dokonała się zamiana wierszy ale nei na zasadzie zmiany miejsc tka jako to mam do tej pory w aktualnej funkcji gdzie podaje index pierwszego do zmiany i index drugiego i zmieniam tylko miejscami ale aby drugi z tych elementów został wstawiony przed ten pierwszy a pozostala czesc tablicy zostala przenumerowana odpowiednio.

Np. mam tablice 4-elementowa i chce aby 4 element wskoczyl przed drugi czyli tak po prostu aby 4 element stal sie 2, 2 element stał się 3, a 3 element 4.

Prosze pomozcie. Jak do tej pory uzywam takiej funkcji ale to jest jedynie zamiana miejsc...

  1. <?php
  2. function zmien_kolejnosc($id1,$id2,&$tablica){
  3.  $tmp=$tablica[$id2];
  4.  $tablica[$id2]=$tablica[$id1];
  5.  $tablica[$id1]=$tmp;
  6. }
  7. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
bigZbig
post 27.03.2006, 15:05:43
Post #2





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


  1. <?php
  2. //Przesuwa element tablicy o kluczu $sKey2 przed element o kluczy $sKey1
  3. function moveValue($sKey1,$sKey2,$aArray){
  4.  
  5. $aArray2 = array();
  6.  
  7. foreach($aArray as $sKey => $mValue) {
  8.  
  9. if($sKey == $sKey1) {
  10. $mValue1 = $mValue;
  11. } elseif ($sKey == $sKey2) {
  12. $mValue2 = $mValue;
  13. }
  14.  
  15. if($mValue1) {
  16. $aArray2[$sKey+1] = $mValue;
  17. } else {
  18. $aArray2[$sKey] = $mValue;
  19.  
  20. }
  21. }
  22. unset($aArray);
  23. unset($aArray2[array_search($mValue2,$aArray2)]);
  24.  
  25. $aArray2[$sKey1] = $mValue2;
  26.  
  27. ksort($aArray2);
  28.  
  29. return $aArray2;
  30. }
  31.  
  32. $tablica = array('0' => 'A', '1' => 'B', '2' => 'C', '3' => 'D');
  33. print('<pre>');print_r($tablica);print('</pre>');
  34.  
  35. $tablica = moveValue(1,3,$tablica);
  36. print('<pre>');print_r($tablica);print('</pre>');
  37. ?>


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
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: 13.08.2025 - 23:41