NePo
Rugpjūtis 10, 2007

Pažintis su PHP masyvais

Kaip ir kitos kalbos turi duomenų tipą saugoti reikšmių grupėms (aibėms) - masyvus (). Kadangi kalboje nėra labai svarbus duomenų tipas, tai masyvus galite naudoti kaip struktūras, t.y. viename masyve saugoti skirtingus duomenų tipus.
kalboje yra vienos rūšies - asociatyvūs. Jų raktai (keys) gali būti ir skaičiai (integer), ir simbolių eilutės (string). Skaičiai su tašku (float), pvz.: ‘2.3′ paverčiami į `integer`. Tikiuosi, kad jūs žinote, kaip sukurti masyvą, tačiau vis tiek aš privalau parašyti, kad galėčiau toliau tęsti savo mintis.

$result=array('pirmas' => 'kiaune' , 'antras' => 'masina', 'trecias' => 2, 'ketvirtas' => true, 'penktas' => 0);
echo "<PRE>";
var_dump($result);
echo "

“;

Šio kodo rezultatas - sukurtas masyvas su 5 kintamaisiais ir atpausdintas, kad galėtume pažiūrėti.

array(5) {
  [1]=>
  string(6) "kiaune"
  ["antras"]=>
  string(6) "masina"
  ["trecias"]=>
  int(2)
  ["ketvirtas"]=>
  bool(true)
  ["penktas"]=>
  int(0)
}


var_dump funkcija parodo kintamojo informaciją. Šiuo atveju parodo kintamojo, kurio tipas masyvas (array), raktus ir reikšmes bei jų tipus. Taip pat galima naudoti ir specialiai masyvų spausdinimui skirtą funkciją - print_r, tačiau ji nepateikia reikšmių tipų.

Norėdami prieiti prie kurio nors masyvo elemento galite kreiptis per raktą.

echo "<PRE>";
echo $result[1];
echo $result["antras"];
echo "

“;

rezultatas:

kiaune
masina

Taip pat masyvą galite sukurti ir šiuo būdu

$result[] = "reiksme1";
$result["antras"] = "eiksme2";
$result[] = "reiksme3";
echo "<PRE>";
var_dump($result);
echo "

“;

Rezultatas:

array(3) {
  [0]=>
  string(8) "reiksme1"
  ["antras"]=>
  string(7) "eiksme2"
  [1]=>
  string(8) "reiksme3"
}

Kaip matome, jeigu nenurodome savo rakto, pagal nutylėjimą raktą nustato skaičių. Jeigu jūs nesate priskyręs nei vieno skaitinio rakto, pirmą skaitinį raktą padaro 0, toliau 1 didina. Jeigu esate priskyręs nors vieną skaitinį raktą, kitus raktus daro didesnius nei jūsų skaitinis raktas.

Dabar pereisime prie įdomiosios dalies. turi daug funkcijų, kurios gali palengvinti jūsų darbą, jeigu bus naudojamos pagal paskirtį.
Pirmiausiai pasitikrinkime, kur stovi mūsų rodyklė masyvuose, tą padaryti mums padės funkcija current.

echo current($result);

Šiuo atveju bus atpausdinta kiaune.
Norėdami pereiti prie kito elemento galime naudotis dvejomis funkcijomis next - sekantis, prev - prieš tai buvęs. Kadangi šiuo atveju masyvas yra pirmajame elemente, tai prev gražins false.
Norėdami greitai pereiti į pirmą elementą galite naudoti reset, į paskutinį - end.

echo "<PRE>";
echo next($result);
echo end($result);
echo prev($result);
echo "

“;

Manau, visiems aišku kokie bus rezultatai.

masina
0
1

Norėdami į masyvą įterpti elementus galite naudotis array_push - įterpia masyvo pabaigoje arba array_unshift įterpia masyvo pradžioje. Norėdami pašalinti elementus galite naudoti array_pop - pašalina elementą iš masyvo galo, array_shift - pašalina elementą iš masyvo pradžios. Atkreipkite dėmesį, jog įterpti galite bet kiek elementų, o pašalinti tik vieną.

echo "<PRE>";
array_push($result, 'sestas', 'septinas');
var_dump($result);
array_unshift($result, 'masina');
var_dump($result);
array_pop($result);
array_shift($result);
var_dump($result);
echo "

“;

Visų šitų veiksmų rezultatai:

array(7) {
  [1]=>
  string(6) "kiaune"
  ["antras"]=>
  string(6) "masina"
  ["trecias"]=>
  int(2)
  ["ketvirtas"]=>
  bool(true)
  ["penktas"]=>
  int(0)
  [2]=>
  string(6) "sestas"
  [3]=>
  string(8) "septinas"
}
array(8) {
  [0]=>
  string(6) "masina"
  [1]=>
  string(6) "kiaune"
  ["antras"]=>
  string(6) "masina"
  ["trecias"]=>
  int(2)
  ["ketvirtas"]=>
  bool(true)
  ["penktas"]=>
  int(0)
  [2]=>
  string(6) "sestas"
  [3]=>
  string(8) "septinas"
}
array(6) {
  [0]=>
  string(6) "kiaune"
  ["antras"]=>
  string(6) "masina"
  ["trecias"]=>
  int(2)
  ["ketvirtas"]=>
  bool(true)
  ["penktas"]=>
  int(0)
  [1]=>
  string(6) "sestas"
}

Štai ir viskas, ką norėjau parodyti šį kartą, be abejonės, šios funkcijos nėra universalus vaistas nuo visų ligų, tačiau jų naudojimas gerokai sutrumpins jūsų kodą.

Panašūs straipsniai


“Pažintis su PHP masyvais” komentarų: 2

  1. xdvx

    Note: If you use array_push() to add one element to the array it’s better to use $array[] = because in that way there is no overhead of calling a function.

    Neužsižaiskit su array_push, daug kartų lėtesnis, nebent tikrai jau daug elementų dedat vienu metu.

  2. » Rikiuojam PHP masyvus Archyvas » Pixel.lt

    […] Tikiuosi skaitėte pažintį su PHP masyvais, dabar pratęsiu pasakojimą ir supažindinsiu jus su galimybėmis rikiuoti masyvus php kalboje. Pats paprasčiausias būdas rikiuoti masyvą yra funkcija sort() Taigi susikurkime masyvą ir pabandykime jį surikiuoti $result1=array(1,5,13,3345,6,3447,87,865,10); sort($result1); print_r($result1); […]

Rašyti komentarą

Jūs privalote prisijungti jeigu norite rašyti komentarą.