HTML, Excel, Word, SEOÎñíîâû PHP ⇒ Ìàññèâû

PHP äëÿ "÷àéíèêîâ"

Èíñòðóìåíòû
Âûáèðàåì IDE
Âûáèðàåì Web-ñåðâåð
Âûáèðàåì ÑÓÁÄ
Ñòðóêòóðà ÿçûêà PHP
Ïåðâûé øàã
Ñèíòàêñèñ
Òèïû äàííûõ
Ïåðåìåííûå è êîíñòàíòû
Îïåðàòîðû
Âûðàæåíèÿ
Óïðàâëÿþùèå ñòðóêòóðû
Ôóíêöèè
Êëàññû
Èñêëþ÷åíèÿ
Îøèáêè
Ìàññèâû
Ãëîáàëüíûå ìàññèâû
Cookies
Ñåññèè
Çàãðóçêà ôàéëîâ
Ðàáîòà ñ ôàéëàìè
Ðàáîòà ñ ôàéëàìè íà äèñêå
Ðàáîòà ñ äàííûìè â ôàéëå
Ïðèìåð óïðàâëåíèÿ ôàéëàìè
Ðàáîòà ñ áàçàìè äàííûõ
Ïîäêëþ÷åíèå
Àíàëèç ðåçóëüòàòîâ
Âûïîëíåíèå çàïðîñîâ
Îòêëþ÷åíèå
Ïðèìåð: îòñëåæèâàíèå ïîëüçîâàòåëåé
Ðàáîòà â ñåòè
Îòïðàâêà ïî÷òû
Áåçîïàñíîñòü
HTTP-àóòåíòèôèêàöèÿ
Çàùèòà ëîãèíîì è ïàðîëåì
Àâòîìàòèçàöèÿ
Ðåãóëÿðíûå âûðàæåíèÿ â PHP
Èíòåãðàöèÿ
PHP è JavaScript



Ìàññèâû


Àâòîð: Àðòåìüåâ Ñåðãåé Èãîðåâè÷
ICQ: 438856621
email: _spin_@bk.ru

Ìàññèâû î÷åíü øèðîêî ïðèìåíÿþòñÿ â PHP-ñêðèïòàõ.


Ìàññèâ - ýòî íàáîð ýëåìåíòîâ, ê êàæäîìó èç êîòîðûõ ìîæíî îáðàòèòüñÿ ïî èíäåêñó èëè èìåíè. Âñå ìàññèâû â PHP ÿâëÿþòñÿ àññîöèàòèâíûìè, ò.å. îñòîÿò èç ïàð "êëþ÷"="çíà÷åíèå".

<?php

	$arr = array();
	$arr['car'] = '×àéêà';
?>

Ìàññèâ $arr ñîäåðæèò îäíó ïàðó çíà÷åíèé. Êëþ÷îì â íåé áóäåò çíà÷åíèå 'car', à çíà÷åíèåì - '×àéêà'.

Çíà÷åíèå êëþ÷åé ìîæåò áûòü òåêñòîâîãî èëè ÷èñëîâîãî òèïà, ïðè÷åì â îäíîì ìàññèâå äîïóñêàåòñÿ ïðèìåíåíèå êëþ÷åé ðàçíûõ òèïîâ. Íàïðèìåð, ñëåäóþùèé êîä âïîëíå ðàáîòîñïîñîáåí:

<?php

	$arr = array();
	$arr['car'] = '×àéêà';
	$arr['age'] = 100;
	$arr[10] = 'Ýëåìåíò ñ êëþ÷îì 10 ';

?>

Èíîãäà íåò íåîáõîäèìîñòè çàäàâàòü êëþ÷è ýëåìåíòîâ.  ýòîì ñëó÷àå ìîæíî âîñïîëüçîâàòüñÿ òåì, ÷òî PHP ìîæåò ñîçäàâàòü êëþ÷è àâòîìàòè÷åñêè ïðè äîáàâëåíèè ýëåìåíòîâ â ìàññèâ. Êëþ÷è âñåãäà áóäóò ÷èñëîâûìè è íà÷èíàòüñÿ ñ íóëÿ. Íàïðèìåð:

<?php
	// ýòè äâà îáúÿâëåíèÿ ìàññèâà ýêâèâàëåíòíû
	
	$arr = array('ïåðâûé', 'âòîðîé', 'òðåòèé');

	// è

	$arr = array(0=>'ïåðâûé', 1=>'âòîðîé', 2=>'òðåòèé');
	

?>

Ñî÷åòàíèå "=>" èñïîëüçóåòñÿ äëÿ îòäåëåíèÿ êëþ÷à îò çíà÷åíèÿ â ýëåìåíòå ïðè îáúÿâëåíèè ìàññèâà.

Îáðàùåíèå ê îòäåëüíîìó ýëåìåíòó ìàññèâà ïðîèçâîäèòñÿ ïî åãî èíäåêñó èëè êëþ÷ó:

<?php
	$arr = array('ïåðâûé', 'âòîðîé', 'òðåòèé');
	$first = $arr[0];
?>

À ñ ïîìîùüþ êîíñòðóêöèè foreach ìîæíî áûñòðî ïåðåáðàòü âñå ýëåìåíòû ìàññèâà:

<?php
	$arr = array('ïåðâûé', 'âòîðîé', 'òðåòèé');
    foreach($arr as $key=>$value)
    	echo "Ýëåìåíò ìàññèâà íîìåð $key ðàâåí '$value'";
?>

Äëÿ ðàáîòû ñ àðõèâàìè â PHP ïðåäóñìîòðåí ðÿä ôóíêöèé, ïîçâîëÿþùèõ âûïîëíèòü íàáîð ñòàíäàðòíûõ îïåðàöèé, òàêèõ êàê ñîðòèðîâêà, ïîèñê èëè ðàçâîðîò ìàññèâà. Ðàññìîòðèì íàèáîëåå èñïîëüçóåìûå ôóíêöèè.

array_chunk() Ñëóæèò äëÿ ðàçäåëåíèÿ ìàññèâà íà ÷àñòè çàäàííîãî ðàçìåðà. Ôóíêöèÿ âîçâðàùàåò ìàññèâ èç ôðàãìåíòîâ èñõîäíîãî ìàññèâà.
<?php
	$arr = array('à', 'á', 'â', 'ã', 'ä');
	$arr_chunked = array_chunk($arr, 3);
    //  $arr_chunked[0] 
    		ñîäåðæèò 'à', 'á', 'â'
    //  $arr_chunked[1] 
    		ñîäåðæèò 'ã', 'ä'
?>
array_combine() Ôóíêöèÿ îáúåäèíÿåò äâà ìàññèâà òàê, ÷òî ýëåìåíòû ïåðâîãî ñòàíîâÿòñÿ êëþ÷àìè, à ýëåìåíòû âòîðîðîãî - çíà÷åíèÿìè ðåçóëüòèðóþùåãî àññîöèàòèâíîãî ìàññèâà.
<?php
	$keys = array(0, 1, 2);
	$vals = array('à', 'á', 'â');
	$res = array_combine($keys, $vals);
    //  $res ñîäåðæèò 
    		0=>'à', 1=>'á', 2=>'â'
?>
array_count_values() Ïîäñ÷èòûâàåò êîëè÷åñòâî óíèêàëüíûõ çíà÷åíèé â ìàññèâå è ÷àñòîòó èõ ïîÿâëåíèÿ
<?php
	$arr = array('à', 'á', 'â', 
    			'à', 'â', 'à');
	$res = array_count_values($arr);
    // $res ñîäåðæèò 
    	'à' => 3, 'á' => 1, 'â' => 2
    
?>
array_diff() Ôóíêöèÿ âûäåëÿåò ðàçíèöó äâóõ ìàññèâîâ, ò.å. ýëåìåíòû, êîòîðûå åñòü â ïåðâîì ìàññèâå è íåò âî âòîðîì.
<?php
	$arr1 = array('à', 'à', 'â');
	$arr2 = array('à', 'á', 'â');
	$res = array_diff($arr1, $arr2);
    //  $res ñîäåðæèò  'á'
?>
array_fill() Çàïîëíÿåò ìàññèâ çàäàííûì çíà÷åíèåì
<?php
	$arr = array();
	$res = array_fill(2, 3, 'xxx');
    //  $res ñîäåðæèò  
    		2=>'xxx'
        	3=>'xxx'
        	4=>'xxx'
?>
array_flip() Ìåíÿåò ìåñòàìè êëþ÷è è çíà÷åíèÿ àññîöèàòèâíîãî ìàññèâà
<?php
	$arr = array(0=>'à', 1=>'á', 2=>'â');
	$res = array_flip($arr);
    //  $res ñîäåðæèò  
    		'à'=>0, 'á'=>1, 'â'=>2
?>
array_intersect() Ôóíêöèÿ âû÷èñëÿåò ïåðåñå÷åíèå äâóõ ìàññèâîâ, ò.å. âûäà¸ò âñå ýëåìåíòû, êîòîðûå åñòü îäíîâðåìåííî â îáîèõ ìàññèâàõ.
<?php
	$arr1 = array('à', 'à', 'â');
	$arr2 = array('à', 'á', 'â');
	$res = array_diff($arr1, $arr2);
    //  $res ñîäåðæèò  'à', 'â'
?>
array_key_exists() Ôóíêöèÿ ïðîâåðÿåò, èìååòñÿ ëè â ìàññèâå êëþ÷ ñ òàêèì èìåíåì.
<?php
	$arr = array(0=>'à', 1=>'á', 2=>'â');
	if(array_key_exists(1, $arr)
    	echo 'Êëþ÷ íàéäåí';
    else echo 'Êëþ÷ íå íàéäåí';    
?>
array_keys() Âîçâðàùàåò ìàññèâ êëþ÷åé
<?php
	$arr = array(0=>'à', 1=>'á', 2=>'â');
	$res = array_keys($arr);
    // $res ñîäåðæèò 0, 1, 2
    	
?>
array_merge() Îáúåäèíÿåò îäèí èëè áîëåå ìàññèâîâ. Çíà÷åíèÿ ýëåìåíòîâ ñ îäèíàêîâûìè êëþ÷àìè çàìåíÿåòñÿ ýëåìåíòàìè âòîðîãî ìàññèâà
<?php
	$arr1 = array(0=>'à', 1=>'à', 2=>'â');
	$arr2 = array(3=>'à', 0=>'á', 4=>'â');
	$res = array_merge($arr1, $arr2);
    //  $res ñîäåðæèò  
    		0=>'á', 1=>'à', 2=>'â',
            3=>'à', 4=>'â'
?>
array_rand() Âîçâðàùàåò îäèí ñëó÷àéíûé ýëåìåíò èç ìàññèâà
<?php
	$arr = array('à', 'á', 'â');
	$res = array_rand($arr, 1);
    //  $res[0] ñîäåðæèò îäèí
    		ñëó÷àéíûé ýëåìåíò èç $arr
?>
array_reverse() Âîçâðàùàåò èñõîäíûé ìàññèâ, íî â îáðàòíîì ïîðÿäå, ò.å. ïðî÷èòàííûé îò êîíöà ê íà÷àëó.
<?php
	$arr = array('à', 'á', 'â');
	$res = array_reverse($arr);
    //  $res ñîäåðæèò  'â', 'á', 'à'
?>
array_search() Ôóíêöèÿ ïðîèçâîäèò ïîèñê ýëåìåíòà ìàññèâà, ñîîòâåòñòâóþùåãî çàäàííûì óñëîâèÿì. Âîçâðàùàåò èìÿ ñîîòâåòñòâóþùåãî êëþ÷à.
<?php
	$arr = array(11=>'à', 22=>'á', 33=>'â');
    $key = array_search('á', $arr);
    //  $key ðàâåí 22
?>
array_shift() Ñäâèãàåò âñå ýëåìåíòû ìàññèâà ê íà÷àëó, ïðè ýòîì ïåðâûé ýëåìåíò ìàññèâà òåðÿåòñÿ.
<?php
	$arr = array('à', 'á', 'â');
    $res = array_shift($arr);
    //  $res ñîäåðæèò 'á', 'â'
?>
array_slice() Èçâëåêàåò ôðàãìåíò ìàññèâà
<?php
	$arr = array('à', 'á', 'â');
    $res = array_slice($arr, 1, 2);
    //  $res ñîäåðæèò 'á', 'â'
?>
array_sum() Ôóíêöèÿ âîçâðàùàåò ñóììó âñåõ çíà÷åíèé ìàññèâà
<?php
	$arr = array(100, 200, 300);
    $sum = array_sum($arr);
    //  $sum ðàâíî 600
?>
array_unique() Óäàëÿåò ïîâòîðÿþùèåñÿ çíà÷åíèÿ èç ìàññèâà
<?php
	$arr = array(100, 200, 200, 300);
    $res = array_unique($arr);
    //  $res ñîäåðæèò
    		100, 200, 300
?>
array_unshift() Ôóíêöèÿ îáðàòíàÿ array_shift(), ñäâèãàåò âñå ýëåìåíòû ê êîíöó ìàññèâà è äîáàâëÿåò ýëåìåíò â íà÷àëî.
<?php
	$arr = array('á', 'â');
    $res = array_unshift($arr, 'x', 'y');
    //  $res ñîäåðæèò 'x', 'y', 'á', 'â'
?>
array_values() Âîçâðàùàåò ìàññèâ çíà÷åíèé èñõîäíîãî ìàññèâà
<?php
	$arr = array('x'=>'à', 
    		'y'=>'á', 'z'=>'â');
    $res = array_values($arr);
    //  $res ñîäåðæèò 'à', 'á', 'â'
?>
array() Ôóíêöèÿ ñîçäà¸ò ïóñòîé èëè ïðåäóñòàíîâëåííûé ìàññèâ.
<?php
	$arr_empty = array();
	$arr_preset = array('x'=>'à', 
    		'y'=>'á', 'z'=>'â');

?>
count() Ïîäñ÷èòûâàåò êîëè÷åñòâî ýëåìåíòîâ â ìàññèâå
<?php
	
	$arr = array('à', 'á', 'â');
    echo count($arr);
    // âûâåäåò 3

?>
in_array() Ïðîâåðÿåò, ñóùåñòâóåò ëè â ìàññèâå óêàçàííîå çíà÷åíèå
<?php
	
	$arr = array('à', 'á', 'â');
    if(in_array('a', $arr))
    	echo 'Çíà÷åíèå åñòü â ìàññèâå';
    else echo 'Çíà÷åíèÿ â ìàññèâå íåò';

?>
list() Îïåðàòîð ïîçâîëÿåò ïðèñâîèòü ìàññèâ ñïèñêó ïåðåìåííûõ.
<?php
	
	$arr = array('Èâàí', 'Ïåòðîâè÷', 'Ñåì¸íîâ');
    
    list($name, $otch, $fam) = $arr;
    
    echo 'Èìÿ: ' . $name;
    echo 'Îò÷åñòâî: ' . $otch;
    echo 'Ôàìèëèÿ: ' . $fam;

?>
sort() Ôóíêöèÿ ñîðòèðîâêè ìàññèâà
<?php
	
	$arr = array('Ñåì¸í', 'Ïåòðîâè÷', 'Èâàíîâ');
    
    sort($arr);
    // $arr ñîäåðæèò 
    	'Èâàíîâ',
        'Ïåòðîâè÷', 
        'Ñåì¸í', 
?>

Êàê âèäèòå ïîëüçîâàòüñÿ ìàññèâàìè î÷åíü ïðîñòî, à ãëàâíîå - ÷ðåçâû÷àéíî óäîáíî. Íè îäèí áîëüøîé ïðîåêò íå îáõîäèòñÿ áåç ïðèìåíåíèÿ ìàññèâîâ. Ìû ðàñìîòðåëè òîëüêî ÷àñòü äîñòóïíûõ ôóíêöèé, íå âäàâàÿñü â òîíêîñòè èõ ïðèìåíåíèÿ äëÿ ðàçëè÷íûõ ñèòóàöèé. Áîëåå ïîäðîáíóþ èíôîðìàöèþ âû ñìîæåòå ïî÷åðïíóòü èç îôèöèàëüíîãî ðóêîâîäñòâà íà ñàéòå www.php.net.



 íà÷àëî ñòðàíèöû



 íà÷àëî ñòðàíèöû