Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Generowanie tablic za pomocą funkcji range()

czwartek,

Generowanie tablic za pomocą funkcji range()

Z pomocą funkcji range() w szybki sposób można generować wieloelementowe tablice. Najwięcej możliwości daje oczywiście połączenie efektów jej działania z innymi konstrukcjami językowymi.

Przykład 1

Podstawowe użycie funkcji range() wymaga podania wartości początkowej i końcowej. W przykładzie wygenerowano tablicę wypełnioną wartościami z zakresu 1-5.

$a = range(1,5);
print_r($a);

/*
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
*/

Przykład 2

W PHP 5.0 dodano opcjonalny trzeci parametr funkcji range() oznaczający wartość, o którą różne są kolejne generowane elementy. W pierwszym przykładzie nie przekazano trzeciego argumentu i przyjęta została domyślna wartość 1. Tym razem trzeci argument wynosi 2. Dodatkowo w przykładzie zaprezentowano możliwość generowania liczb ujemnych.

$a = range(-4,4,2);
print_r($a);

/*
Array
(
    [0] => -4
    [1] => -2
    [2] => 0
    [3] => 2
    [4] => 4
)
*/

Przykład 3

Funkcja range() może generować wartości malejące, wystarczy przekazać odpowiednie argumenty. Możliwość tą dodano w PHP 4.1.0.

$a = range(10,2,2);
print_r($a);

/*
Array
(
    [0] => 10
    [1] => 8
    [2] => 6
    [3] => 4
    [4] => 2
)
*/

Przykład 4

Wartość przyrostu nie musi być liczbą całkowitą.

$a = range(2.1,3.1,.2);
print_r($a);

/*
Array
(
    [0] => 2.1
    [1] => 2.3
    [2] => 2.5
    [3] => 2.7
    [4] => 2.9
    [5] => 3.1
)
*/

Przykład 5

Funkcja range() doskonale radzi sobie ze znakami. W przykładzie wygenerowano co czwartą literę z zakresu A-Z. Pod uwagę brane są znaki ASCII (nie będzie np. polskich znaków).

$a = range('A','Z',4);
print_r($a);

/*
Array
(
    [0] => A
    [1] => E
    [2] => I
    [3] => M
    [4] => Q
    [5] => U
    [6] => Y
)
*/

Przykład 6

Ostatni przykład to prezentacja możliwości zastosowania funkcji range() w bardziej złożonych konstrukcji językowych. Początkowo generowana jest najprostsza tablica pięcioelementowa (range()), a następnie z pomocą funkcji anonimowej każdy z jej elementów jest zwiększany o liczbę pseudolosową (rand()). W efekcie wartości w wygenerowanej tablicy są w pewnym stopniu przypadkowe, dodatkowo mogą się one powtarzać. Wygenerowane liczby oczywiście będą ulegać zmianie w każdym wywołaniu prezentowanego kodu.

$a = array_map(function($x){return $x+rand(0,10);},range(1,5));
print_r($a);

/*
Array
(
    [0] => 9
    [1] => 12
    [2] => 7
    [3] => 5
    [4] => 5
)
*/
Artykuł: Harmonogram egzaminów maturalnych

Harmonogram egzaminów maturalnych

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły