Mix Arrays
Bemeneti adat előállítása
Példa: Három kockával kisorsoljuk, melyik időpontban ki léphet be az adott eseményre:
$dice = 3; $data = Array( "0" => Array( "place" => 1, "firstname" => 'Kiss', "lastname" => 'Tibi', "start_time" => '08:00', "end_time" => '09:00' ), "1" => Array( "place" => 2, "firstname" => 'Nagy', "lastname" => 'Lala', "start_time" => '10:00', "end_time" => '11:00' ), "2" => Array( "place" => 3, "firstname" => 'Török', "lastname" => 'Töhötöm', "start_time" => '12:00', "end_time" => '13:00' ), "3" => Array( "place" => 4, "firstname" => 'Bús', "lastname" => 'Ubul', "start_time" => '14:00', "end_time" => '15:00' ) ); $pairs = Array( "firstname", "lastname"); $show = Array( "place", "firstname", "lastname"); $final['dice'] = $dice; $final['data'] = $data; $final['pairs'] = $pairs; $final['show'] = $show; $encoded = base64_encode(json_encode($final)); print $encoded;
$dice: integer.
A sorsoláshoz használt dobókockák száma.
Egy kocka esetén véletlenszerűen 1-6-ig terjedő számot határoz meg és annyiszor futtatja le a $data töm elemein a véletlenszerű összekeverést, amilyen szám kijött.
Több kocka esetén minden egyes kockanál 1-6-ig terjedő intervallumban véletlenszámot generál, majd ezen számok összegeként kapott alkalommal keveri össze a $data tömb elemeit.
$data: array
Kétdimenziós adattömb, melynek első dimenziója tartalmazza azokat a tömböket, amelyekben az összekeverendő adatok vannak.
Az első dimenzió kulcsait nem kell megadni, azonban a második dimenzióban a kulcsok meghatározása kötelező.
$pairs: array
Egydimenziós tömb. Azoknak a $data tömbben található kulcsoknak a meghatározása, amelyeket a véletlenszerű sorrendezés során együtt kell kezelni, azaz egymáshoz képest nem keverhetőek.
$show: array
Egydimenziós tömb. Azoknak a $data tömbben található kulcsoknak a meghatározása, amelyeket szeretnénk megjeleníteni a sorsolási oldalon.
$final: array
Többdimenziós tömb, amelynek első dimenziója a fenti négy változó.
$encoded: string
A $final tömbből előbb json stringet kell készíteni, majd base64 kódoló segítségével lekódolni.
Eredmény:
eyJkaWNlIjozLCJkYXRhIjpbeyJwbGFjZSI6MSwiZmlyc3RuYW1lIjoiS2lzcyIsImxhc3RuYW1lIjoiVGliaSIsInN0YXJ0X3RpbWUiOiIwODowMCIsImVuZF90aW1lIjoiMDk6MDAifSx7InBsYWNlIjoyLCJmaXJzdG5hbWUiOiJOYWd5IiwibGFzdG5hbWUiOiJMYWxhIiwic3RhcnRfdGltZSI6IjEwOjAwIiwiZW5kX3RpbWUiOiIxMTowMCJ9LHsicGxhY2UiOjMsImZpcnN0bmFtZSI6IlRcdTAwZjZyXHUwMGY2ayIsImxhc3RuYW1lIjoiVFx1MDBmNmhcdTAwZjZ0XHUwMGY2bSIsInN0YXJ0X3RpbWUiOiIxMjowMCIsImVuZF90aW1lIjoiMTM6MDAifSx7InBsYWNlIjo0LCJmaXJzdG5hbWUiOiJCXHUwMGZhcyIsImxhc3RuYW1lIjoiVWJ1bCIsInN0YXJ0X3RpbWUiOiIxNDowMCIsImVuZF90aW1lIjoiMTU6MDAifV0sInBhaXJzIjpbImZpcnN0bmFtZSIsImxhc3RuYW1lIl0sInNob3ciOlsicGxhY2UiLCJmaXJzdG5hbWUiLCJsYXN0bmFtZSJdfQ==
Kimeneti adat visszafejtése
A visszafejtett kimeneti adat az alábbi tömböt tartalmazza:
Array
(
[lottery_data] => Array
(
[sum] => 5
[dice] => 3
[roll] => Array
(
[0] => 3
[1] => 1
[2] => 1
)
)
[all_lottery] => Array
(
[1] => Array
(
[0] => Array
(
[place] => 1
[firstname] => Nagy
[lastname] => Lala
[start_time] => 08:00
[end_time] => 09:00
)
[1] => Array
(
[place] => 2
[firstname] => Kiss
[lastname] => Tibi
[start_time] => 10:00
[end_time] => 11:00
)
[2] => Array
(
[place] => 3
[firstname] => Bús
[lastname] => Ubul
[start_time] => 12:00
[end_time] => 13:00
)
[3] => Array
(
[place] => 4
[firstname] => Török
[lastname] => Töhötöm
[start_time] => 14:00
[end_time] => 15:00
)
)
...
...
...
[5] => Array
(
[0] => Array
(
[place] => 1
[firstname] => Kiss
[lastname] => Tibi
[start_time] => 08:00
[end_time] => 09:00
)
[1] => Array
(
[place] => 2
[firstname] => Török
[lastname] => Töhötöm
[start_time] => 10:00
[end_time] => 11:00
)
[2] => Array
(
[place] => 3
[firstname] => Nagy
[lastname] => Lala
[start_time] => 12:00
[end_time] => 13:00
)
[3] => Array
(
[place] => 4
[firstname] => Bús
[lastname] => Ubul
[start_time] => 14:00
[end_time] => 15:00
)
)
)
[last_lottery] => Array
(
[0] => Array
(
[place] => 1
[firstname] => Kiss
[lastname] => Tibi
[start_time] => 08:00
[end_time] => 09:00
)
[1] => Array
(
[place] => 2
[firstname] => Török
[lastname] => Töhötöm
[start_time] => 10:00
[end_time] => 11:00
)
[2] => Array
(
[place] => 3
[firstname] => Nagy
[lastname] => Lala
[start_time] => 12:00
[end_time] => 13:00
)
[3] => Array
(
[place] => 4
[firstname] => Bús
[lastname] => Ubul
[start_time] => 14:00
[end_time] => 15:00
)
)
[original_data] => Array
(
[0] => Array
(
[place] => 1
[firstname] => Kiss
[lastname] => Tibi
[start_time] => 08:00
[end_time] => 09:00
)
[1] => Array
(
[place] => 2
[firstname] => Nagy
[lastname] => Lala
[start_time] => 10:00
[end_time] => 11:00
)
[2] => Array
(
[place] => 3
[firstname] => Török
[lastname] => Töhötöm
[start_time] => 12:00
[end_time] => 13:00
)
[3] => Array
(
[place] => 4
[firstname] => Bús
[lastname] => Ubul
[start_time] => 14:00
[end_time] => 15:00
)
)
)
[lottery_data]
Tartalmazza a dobás adatait.
dice: dobókockák száma.
roll: a véletlenszámgenerálás eredmény kockánként.
sum: a dobókockák kapott értékeinek összege
[all_lottery]
Tartalmazza mindegyik sorsolás eredményét külön tömbben
[last_lottery]
Tartalmazza a végeredményt (utolsó sorsolás eredményét) egy külön tömbben
[original_data]
Tartalmazza az eredeti tömböt egy külön tömbben
Az eredmények visszafejtése az alábbi paranccsal történik:
$encoded = json_decode(base64_decode(trim($result)),true);ahol a $result változóban a vágólapra másolt eredmény taálható base64 által kódolva.