Lekcje >> Podstawy PHP
Polimax

Drukarnia w Warszawie realizująca druk wizytówek, plakatów jak również fotoksiążki, fotoobrazy i fotokalendarze - z wysyłką na terenie całego kraju.

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.