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