Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z tablicą
Forum PHP.pl > Forum > PHP
tommy567
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. ?>
bigZbig
  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. ?>
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.