![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 17.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam tablicę, której struktura wygląda następująco: Array ( [0] => Array ( [id] => 1338319986 [name] => ccm [1] => Array ( [id] => 1467091237 [name] => ooa [2] => Array ( [id] => 1467091237 [name] => ooa)) Chcę, aby jej elementy pozamieniały się ze sobą losowo kolejnością tzn. tylko [0], [1], [2], dalsza struktura pozostaje bez zmian. Problem może błahy ale niestety nie mogę sobie z tym poradzić. Googluje od dwóch godzin i w sumie nie znalazłem nic, co by poprawnie zadziałało. Z tego co wyczytałem teoretycznie zadzaiałać powinno shuffle(). Jakoś działa, tyle że wygląda to tak, że zamiast tasować to sobie losuje bo elementy się powtarzają. Jak to ugryźć? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 78 Dołączył: 4.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 17.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmm... no tak, wspomniałem o tym, że to znalazłem tyle że nie działa to tak jak powinno bo tak tasuje że powtarzają się elementy tablicy
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Uwaga: Samo shuffle przemiesza całą tablicę.
Jeżeli chcesz przemieszać tylko początek to (np.): Sprawdziłem - działa. Uwaga: Zarówno shuffle jak i array_splice "regenerują" klucze. Jeżeli to szkodzi, to musisz: 1. Przemieszać tablicę zawierającą 3 początkowe indeksy (nie jestem pewny czy zawsze są to 0, 1 i 2). 2. Wyciągać elementy w kolejności wg tej przemieszanej tablicy (do tabl. rob.). Dopiero potem dodać do niej pozostałe. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 17.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
O kurcze chyba muszę troszeczkę sprostować bo jak widzę chyba nie potrafiłem dobrze wytłumaczyć o co mi chodzi
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To sprawa jest prosta.
Tak jak radził zordon - shuffle, tylko pamiętaj, że ta funkcja "regeneruje" klucze, czyli w wynikowej tablicy: - będziesz mieć klucze od 0 wzwyż, - związki między id a name powinny pozostać bez zmian. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 17.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Akurat to nie ma większego znaczenia że klucze się pozmieniają. Ale z shuffle mam ten problem, że jak to zastosuję to niby miesza, ale też elementy tablicy się powtarzają więc coś nie do końca to chce działać poprawnie.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 78 Dołączył: 4.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 17.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmm... no tak, to to już przerabiałem i w moim przypadku wyjściowa tablica jest identyczna jak tablica wejściowa :/
Tak to wygląda u mnie. Niestety nic nie zamienia :/ |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 17:55 |