Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tasowanie tablicy inne niz shuffle
sadistic_son
post 5.08.2011, 07:30:06
Post #1





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Jak potasować tablicę aby zmienić tylko kolejność wyświetlania kolejnych elementów? Funkcja shuffle zmienia pary klucz => wartość. A ja chcę ją tak potasować aby dany klucz pozostał przy swojej wartości. Czyli tylko zmienić kolejność wyświetlania tych par. Lecz problemem jest to że nie wszystkich par.
Dla przykładu print_r zwraca mi takie coś:
Kod
Array
        (
            [id] => 10
            [question] => wartosc1
            [ans1] => x1
            [ans2] => y1
            [ans3] => z1
            [ans4] => zz1
        )
Chciałbym tak potasować losowo tablicę aby id i question zostały na swoim miejscy a pozostałe wyświetlały się losowo, czyli np tak:
Kod
Array
        (
            [id] => 10
            [question] => wartosc1
            [ans4] => zz1
            [ans1] => x1
            [ans3] => z1
            [ans2] => y1

        )
Any ideas?

Ten post edytował sadistic_son 5.08.2011, 07:34:53


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
peter13135
post 5.08.2011, 08:57:33
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


array_rand zamiast shuffle ?


--------------------
:)
Go to the top of the page
+Quote Post
sadistic_son
post 5.08.2011, 09:09:59
Post #3





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(peter13135 @ 5.08.2011, 09:57:33 ) *
array_rand zamiast shuffle ?

Nie bardzo mam pomysł jak użyć array_rand w takim kodzie:
  1. foreach ($_SESSION['quiz'] as $s){
  2. echo $s['question'].'<br />';
  3.  
  4. foreach($s as $skey => $sval){
  5. if($skey != 'id' && $skey!='question'){
  6. echo $sval.'<input type="radio" name="'.$s['id'].'" value="'.$sval.'" /><br />';
  7. }
  8. }
  9. }

Cytat(skowron-line @ 5.08.2011, 10:00:01 ) *
A nie możesz własnej funkcji napisać.
No właśnie.... ANY IDEAS ?

Cytat(smietek @ 5.08.2011, 10:00:14 ) *
Wyciągnąć daną ilość wpisów z tej tablicy, posortować je w osobnej tablicy a potem przebudować tablicę pierwotną.
Nie potrzebuję przebudowywać tablicy pierwotnej, chcę tylko ją wyświetlić potasowaną, a właściwie tylko jej 4 ostatnie elementy, czyli wszystkie oprócz 2 pierwszych. I posortowanie to nie potasowanie.

Panowie, czytajcie dokładnie z czym mam problem. Funkcja działająca jak shuffle tutaj nie pomoże.

Ten post edytował sadistic_son 5.08.2011, 09:11:55


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.08.2025 - 00:31