Massiiv

Nagu andmetüüpide juures mainitud on massiiv muutuja, millel võib olla suvaline hulk väärtuseid.

Massiivi loomine

Massiiv luuakse keelekonstruktsiooniga array()

<pre>
<?php
$foor = array(1=>'Punane', 'Kollane', 'Roheline');
print_r($foor);
?>

Nende ridadega määrasime massiivi nimeks $foor, alustasime elementide loetelu võtmest 1 ja elementideks on kolm foori värvi. Väljundiks on:

<pre>
Array
(
    [1] => Punane
    [2] => Kollane
    [3] => Roheline
)

Nagu näha said järgnevateks massiivi võtmeteks 2 ja 3. Massiivi võtmeks võib olla ka tekst:

<?php
$foor = array('a'=>'Punane', 'b'=>'Kollane', 'c'=>'Roheline');
?>

Massiivi, mille võtmeteks on tekst, nimetatakse assotsiatiiv massiiviks (associative array)

Elementide arv jms

Massiivielementide arvu leidmiseks on funktsioon count()

<?php
$foor = array('a'=>'Punane', 'b'=>'Kollane', 'c'=>'Roheline');
echo count($foor); // väljastatakse 3
?>

Kontrollida, kas muutuja on massiiv, saab funktsiooniga is_array()

<?php
$mass = array(1, 2, 3);
if(is_array($mass)) {
  echo '$mass on massiiv';
}
?>

Elementide väljastamine

Masiivi elemente saab väljastada võtme järgi:

<?php
$foor = array(1=>'Punane', 'Kollane', 'Roheline');
echo $foor[1] . '<br>'; // Väljastatakse Punane
echo $foor[3]; // Väljastatakse Roheline
?>

Kõigi elementide väljastamine

Kõigi elementide väljastamiseks võib kasutada foreach kordust:

<?php
$otsimootorid = array('Yahoo', 'Google', 'Yammy', 'Neti');
foreach($otsimootorid as $voti=>$element)
{
  echo $voti . ':' . $element . "<br>\n";
}
?>

Tulemuseks on

0:Yahoo<br>
1:Google<br>
2:Yammy<br>
3:Neti<br>

Pisut kergema vaevaga saab elemendid väljastamiseks ritta ajada funktsiooni join() abil:

<?php
$otsimootorid = array('Yahoo', 'Google', 'Yammy', 'Neti');
echo join("<br>\n", $otsimootorid);
?>

Väljundiks on:

Yahoo<br>
Google<br>
Yammy<br>
Neti

Elementide muutmine

Teades massiivi võtit on võimalik muuta ka masiivielementi ennast:

<?php
$foor = array(1=>'Punane', 'Kollane', 'Roheline');
$foor[1] = 'Helepunane';
$foor[3] = 'Tumeroheline';
echo '<pre>';
print_r($foor);
?>

Väljundiks on:

Array
(
    [1] => Helepunane
    [2] => Kollane
    [3] => Tumeroheline
)

Elementide lisamine

Massiivi lõppu elementide lisamiseks on funktsioon array_push()

<?php
$puuviljad = array('õunad', 'ploomid');
array_push($puuviljad, 'kreegid', 'pirnid');
print_r($puuviljad);
?>

Väljundiks on:

Array
(
    [0] => õunad
    [1] => ploomid
    [2] => kreegid
    [3] => pirnid
)

Sama tulemuse saab järgnevalt:

<?php
$puuviljad = array('õunad', 'ploomid');
$puuviljad[] = 'kreegid';
$puuviljad[] = 'pirnid';
print_r($puuviljad);
?>

Massiivi algusesse elementide lisamiseks on funktsioon array_unshift()

<?php
$puuviljad = array('õunad', 'ploomid');
array_unshift($puuviljad, 'kreegid', 'pirnid');
print_r($puuviljad);
?>

Väljundiks on:

Array
(
    [0] => kreegid
    [1] => pirnid
    [2] => õunad
    [3] => ploomid
)

Elementide kustutamine

Elementide kustutamiseks on erinevaid võimalusi, olenevalt sellest mida täpsemalt teha soovitakse.

<?php
$osid = array('lin'=>'linux', 'win'=>'windows', 'bsd'=>'bsd', 'qnx'=>'qnx');
array_pop($osid); // massiivi lõpust kaksatakse maha viimane element 'qnx'
array_shift($osid); // massiivi algusest kaksatakse maha esimene element 'linux'
unset($osid['bsd']); // element eemldatakse võtme järgi
print_r($osid);
?>

Tulemuseks on:

Array
(
    [win] => windows
)

NB! Lisaks elementide eemaldamisele tagastavad array_pop ja array_shift vastavalt massiivi viimase ning esimese elemendi, nt soovides saada massiivist viimast ning esimest elementi, võib käituda järgnevalt:

<?php
$seadmed = array('diskett', 'cd', 'dvd');
// muutuja $viimane väärtuseks saab dvd, ühtlasi eemaldatakse see massiivist
$viimane = array_pop($seadmed);
 
// $esimene sisaldab nüüd teksti 'diskett', massiivi $seadmed ainsaks väärtuseks jäi 'cd'
$esimene = array_shift($seadmed); 
?>

Elementide muutujateks teisendamine

Massiivielemente on võimalik muutujateks teisendada funktsiooni list() abil.

<?php
$seadmed = array('diskett', 'cd', 'dvd');
list($alfa, $beta, $gamma) = $seadmed;
echo $alfa; // diskett
echo $beta; // cd
echo $gamma;// dvd
?>

Assotsiatiivmassivi korral saab kasutada järgnevat moodust:

<?php
$seadmed = array('alfa'=>'diskett', 'beta'=>'cd', 'gamma'=>'dvd');
extract($seadmed);
echo $alfa; // diskett
echo $beta; // cd
echo $gamma;// dvd
?>

Välisviited

 
massiiv.txt · Viimati muutnud: 2008/12/22 18:00 persoon laurik
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki