PHP Masyvai. Jų panaudojimas bei veikimas
Pamėginsiu išaiškinti kas tie masyvai ir kam jų reikia.
Pradėsiu nuo array() funkcijos:
array() - yra skirta sudarinėti tikslius sąrašus kitaip sakant masyvus.
Sintaksė: indeksas ⇒ reikšmė,
indeksas gali būti ir žodis ir sveikasis skaičius,
jeigu indeksas nenurodomas funkcija automatiškai generuoja jį kaip skaičių pradedant 0,
jei ir toliau būtų nenurodytas indeksas tai ir toliau automatiškai generuotų indeksą
kaskart pridedant po vienetą. Jei atsitiktų taip kad tokiu indeksu jau yra nustatyta reikšmė
tada tas indeksas butu tiek didinamas kol atsirastu nenustatytas indeksas.
Pavyzdžiai
PVZ 1: Išsiaiškinam maždaug sintaksę ir naudojimą:
$array = array('pamoka' => 'masyvai', 'tipas' => 'pavyzdys'); echo "Pamoka: " . $array['pamoka'] . " Tipas: " . $array['tipas']; //Gražins: Pamoka: masyvai, Tipas: pavyzdys
PVZ 2: Surašome index`us automatiškai
$auto_array = array(1, 2, 3, 4, 5, 16 => 20, 2 => 'du', 15, 16); print_r($auto_array);
Atrodys taip:
Array
(
[0] => 1
[1] => 2
[2] => du
[3] => 4
[4] => 5
[16] => 20
[17] => 15
[18] => 16
)
Index`ui 2 buvo suteikta reikšmė 3 bet toliau jį pakeičiau į žodį du todėl reikšmė 3 dingo. Atlikus 16 ⇒ 20, visos kitos reikšmės įgijo didesnes reikšmes t.y. 15 ir 16 reikšmės priskirtos jau nuo 16+1 iš čia galima suprasti kad imamas didžiausias index`as masyve ir prie jo yra pridedamas 1 taip generuojami index`ai.
PVZ 3: Pamėginam padaryti kad skaičiuotų nuo 1
$array = array(1 => 'plaukė', 'antys', 'ristele'); print_r($array);
Atrodys taip:
array
(
[1] => 'plaukė',
[2] => 'antys',
[3] => 'ristele'
)
PVZ 4: Erdvinis masyvas t.y. masyvas masyve
$array = array( 'pvz1' => array('pamoka' => 'masyvai', 'tipas' => 'pavyzdys'), 'pvz2' => array(1, 2, 3, 4, 5, 16 => 20, 2 => 'du', 15, 16), 'pvz3' => array(1 => 'plaukė', 'antys', 'ristele') ); print_r($array); /* Atrodys taip: Array ( [pvz1] => Array ( ['pamoka'] => masyvai ['tipas'] => pavyzdys ) [pvz2] => Array ( [0] => 1 [1] => 2 [2] => du [3] => 4 [4] => 5 [16] => 20 [17] => 15 [18] => 16 ) [pvz3] => Array ( [1] => plauke [2] => antys [3] => ristele ) ) */
Taigi dabar galite naudoti taip:
echo $array[pvz1][pamoka]; // gražins: masyvai echo $array[pvz3][2]; // gražins: antys
PVZ 4: Kaip sukurti masyvą nesinaudojant array() ?
$array[] = 'pirmas'; $array[] = 'antras'; print_r($array); Atrodys taip: Array ( [0] => pirmas, [1] => antras ) Galima ir erdvinį masyvą sukurti: $array[1][1] = 'grazus'; $array[1][2] = 'bjaurus'; $array[2]['kur'] = 'raseiniuose'; print_r($array); /* Atrodys taip: Array ( [1] => Array ( [1] => grazus [2] => bjaurus ) [2] => Array ( [kur] => raseiniuose ) ) */
Žodžiu naudojat kaip patogiau.
Taigi visai neblogai pradžiai.
Dabar keletas pagrindinių funkcijų:
is_array() - skirtas patikrinti ar kintamasis yra masyvas
$array = array(1, 1, 1); $test = 'kazkas'; if (is_array($array)) { echo '$array yra masyvas'; } else { echo '$array yra nemasyvas'; } // Gražins: masyvas if (is_array($test)) { echo '$test yra masyvas'; } else { echo '$test yra nemasyvas'; } // Gražins: nemasyvas
array_values() - skirta išgauti visas masyvo reikšmes
$array = array( 'laikas' => 'pietus', 'valgis' => 'skanus' ); print_r(array_values($array)); /* Atrodys taip: Array ( [0] => pietus, [1] => skanus ) */
array_keys - skirta išgauti visus masyvo index`us naudoti taip pat kaip ir array_values()
array_sum() - skirta sudėti reikšmes
echo array_sum(array(1,5,4)); // 1+5+4=10
Toliau atsibodo rašyt tai iš manualo kopijuosiu pavyzdžius
array_splice() - naudojamas išrinkti reikšmes is masyvo
$input = array ("red", "green", "blue", "yellow"); array_splice ($input, 2); // $input is now array ("red", "green") $input = array ("red", "green", "blue", "yellow"); array_splice ($input, 1, -1); // $input is now array ("red", "yellow") $input = array ("red", "green", "blue", "yellow"); array_splice ($input, 1, count($input), "orange"); // $input is now array ("red", "orange") $input = array ("red", "green", "blue", "yellow"); array_splice ($input, -1, 1, array("black", "maroon")); // $input is now array ("red", "green", // "blue", "black", "maroon")
array_slice() - naudojamas išrinkti reikšmes iš masyvo
$input = array ("a", "b", "c", "d", "e"); $output = array_slice ($input, 2); // returns "c", "d", and "e" $output = array_slice ($input, 2, -1); // returns "c", "d" $output = array_slice ($input, -2, 1); // returns "d" $output = array_slice ($input, 0, 3); // returns "a", "b", and "c"
in_array() - tikrinti ar tokia reikšmė yra masyve
<?php $a = array(array('p', 'h'), array('p', 'r'), 'o'); if (in_array(array ('p', 'h'), $a)) echo "'ph' rastas\n"; if (in_array(array ('f', 'i'), $a)) echo "'fi' rastas\n"; if (in_array('o', $a)) echo "'o' rastas\n"; ?> // Rezultatas: // 'ph' rastas // 'o' rastas
Discussion