Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Szukam dobrego algorytmu przesuwającego elementy w tablicy
Forum PHP.pl > Forum > PHP
szparag33
Witam

Szukam dobrego algorytmu do przesuwania elementów w tablicy, jakoś nie podobają mi się te które ja wymotuję więc postanowiłem zapytać, bo ktoś na pewno zna jakiś dobry.

  1. <?php
  2. // Funkcja przesuwajaca elementy tablicy
  3. function przesunElement( $tablica, $klucz_elementu, $nowa_pozycja ) {
  4.  
  5.    // Algorytm przesuwania elementow, ktorego szukam
  6.  
  7.    return $tablica;
  8. }
  9.  
  10.  
  11. $tablica = array(
  12.    '1' => 'rower',
  13.    '2' => 'samochód',
  14.    '3' => 'samolot',
  15.    '4' => 'diament',
  16.    '5' => 'kaczka',
  17.    '6' => 'stolik'
  18. );
  19.  
  20. // Wywolanie funkcji przesuwajacej
  21. $tablica = przesunElement( $tablica, '2', 6 );
  22. ?>


Liczę na pomoc i jakiś dobry pomysł smile.gif
kwiateusz
zalezy co masz na mysli czy zamienia miejscami 2 z 6ką czy 2ke przenosi na miejsce 6ki a stara 6ka staje sie 7ką
szparag33
Np.: element 2 przesuwa na 6 pozycję, czyli dostajemy

  1. <?php
  2. $tablica = array(
  3.    '1' => 'rower',
  4.    '3' => 'samolot',
  5.    '4' => 'diament',
  6.    '5' => 'kaczka',
  7.    '6' => 'stolik',
  8.   '2' => 'samochód'
  9. );
  10. ?>
kwiateusz
i że niby co Ci to miałoby dac? jak bedziesz chciał wyświetlić samochod to czy tablica jest tak, czy inaczej to i tak wywowałsz $tablica[2]
szparag33
Że niby to:

zmiana pozycji (kolejności) elementów w tablicy.
kwiateusz
w tablicy asocjacyjnej nic Ci to nie da bo wybierasz elementy po indeksie (kluczu) smile.gif a nie kolejnosci przekazania do zmiennej

chyba ze cala deklaracje tablicy bedziesz wyswietlał na stronie...
VGT
Cytat(kwiateusz @ 8.12.2008, 00:44:36 ) *
w tablicy asocjacyjnej nic Ci to nie da bo wybierasz elementy po indeksie (kluczu) smile.gif a nie kolejnosci przekazania do zmiennej

chyba ze cala deklaracje tablicy bedziesz wyswietlał na stronie...


Przy przejsciu przez tablice foreach'em bedzie mialo znaczenie
phpion
Może coś takiego?
  1. <?php
  2. function przesunElement( $tablica, $klucz_elementu, $nowa_pozycja ) {
  3.  
  4.   // Algorytm przesuwania elementow, ktorego szukam
  5.  
  6.   if (isset($tablica[$klucz_elementu])) {
  7.      $tablica[$nowa_pozycja] = $tablica[$klucz_elementu];
  8.      unset($tablica[$klucz_elementu]);
  9.   }
  10.  
  11.   return $tablica;
  12. }
  13. ?>
szparag33
@Bonastick, tak, ta zmiana kolejności będzie później odczytywana foreach'em.

@phpio, tak o coś takiego mi chodzi, tylko, że Twoja funkcja ma wadę, zastępuje (usuwa) jeden element tablicy... sprawdzałeś go?
phpion
Cytat(szparag33 @ 9.12.2008, 01:47:14 ) *
@phpio, tak o coś takiego mi chodzi, tylko, że Twoja funkcja ma wadę, zastępuje (usuwa) jeden element tablicy... sprawdzałeś go?

Nie sprawdzałem ale raczej powinno działac poprawnie. Najpierw wstawia konkretny element na nową pozycję, a następnie usuwa go ze starej pozycji. W wyniku tego następuje przesunięcie danego elementu ze starej pozycji na nową.
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.