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.