Zmienianie kolejności elementów
Podczas tych zajęć będziemy stosować wbudowane funkcje PHP, do zmiany kolejności elementów tablic.
Przetasowanie tablicy za pomocą funcji shuffle()
Funkcja ma postać bool shuffle(array &$tablica)
. Podczas "mieszania" elementów, tworzone są nowe klucze, więc funkcja ta nie nadaje się to tablic asocjacyjnych.
Ćwiczenie 2_9_0_1. Tasowanie elementów tablicy za pomocą funkcji shuffle()
Zastosuj następujący kod PHP:
<?php
require_once('../moje_funkcje.php');
$t1=array(3,1,67,34,8);
$t2=array('k1'=>3,'k2'=>1,'k3'=>67,'k4'=>34,'k5'=>8);
shuffle($t1);
shuffle($t2);
pokaz_tablice($t1);
pokaz_tablice($t2);
?>
W wyniku zastosowania funkcji shuffle()
, kolejność elementów tablic została zmieniona w sposób losowy. Utworzone zostały nowe indeksy.
Wybieranie losowe jednego lub kilku elementów tablicy za pomocą funkcji array_rand()
Funkcja ma postać mixed array_rand(array $tablica[, int $ilość])
. "Wyciągane" są klucze elementów. Jeżeli wartość opcjonalna $ilość
nie jest podana, to otrzymujemy jeden klucz, w przeciwnym przypadku - tablicę kluczy.
Ćwiczenie 2_9_0_2. Losowe wybieranie elementów tablicy za pomocą funkcji array_rand()
Zastosuj następujący kod PHP:
<?php
require_once('../moje_funkcje.php');
$t1=array('k1'=>3,'k2'=>1,'k3'=>67,'k4'=>34,'k5'=>8);
$t2=array_rand($t1,2);
pokaz_tablice($t2);
?>
W wyniku zastosowania funkcji array_rand()
, otrzymaliśmy dwuelementową tablicę indeksów, losowo wybranych elementów.
Odwrócenie kolejności elementów tablicy za pomocą funkcji array_reverse()
Funkcja ma postać array array_reverse(array $wejście[, bool $zachowaj_klucze])
. Jak widzimy, opcjonalnie możemy również zachować klucze.
Ćwiczenie 2_9_0_3. Odwrócenie kolejności elementów tablicy za pomocą funkcji array_reverse()
Zastosuj następujący kod PHP:
<?php
require_once('../moje_funkcje.php');
$t1=array(3,1,67,34,8);
$t2=array('k1'=>3,'k2'=>1,'k3'=>67,'k4'=>34,'k5'=>8);
$t=array_reverse($t1);
pokaz_tablice($t);
$t=array_reverse($t1,true);
pokaz_tablice($t);
$t=array_reverse($t2);
pokaz_tablice($t);
$t=array_reverse($t2,true);
pokaz_tablice($t);
?>
W pierwszym przypadku, utworzone zostały nowe indeksy, w drugim indeksy zachowano. Elementy tablicy asocjacyjnej zawsze zachowują klucze.