380 likes | 1.01k Views
Vektoret. Programim ne Web Leksion 4. Vektoret. Nje vektor ( array) eshte nje varg objektesh me tip dhe madhesi te njejte . Krijimi i nje vektori ne PHP: $languages[ ] = "Spanish"; // $languages[0] = "Spanish"
E N D
Vektoret Programim ne Web Leksion 4 Iralda Mitro
Vektoret • Njevektor (array) eshtenjevargobjektesh me tip dhemadhesitenjejte. Krijimiinjevektori ne PHP: $languages[ ] = "Spanish"; // $languages[0] = "Spanish" • Mundteshtoniedheelementetetjera ne vektor pa percaktuarindekset e elementeve, si me poshte: $languages[ ] = "English"; // $languages[1] = "English" $languages[ ] = "Shqip"; • Cdo element i ri shtohet ne pozicionin “gjatesia e vektorit +1” • Ose mund te shtoni elementet e vektorit ne nje pozicion te caktuar, psh: $languages[15] = "Italian"; Iralda Mitro
Vektoret e gatshem • Ne PHP ka trefunksionetegatshem per tendertuarnjevektor. • array() • list() • range() • Megjithesetetrearrijnetenjejtinrezultat, per krijimin e vektorit, ka rastekurperdorimiinjeritfunksioneshte me ipershtatshem se tetjeret. Iralda Mitro
array() • Kyfunksionmerrsi input zero ose me shumeelementedhekthennjevektorteperberengaketoelemente. Sintaksaeshte: • array array ( [element1, element2 … ] ) • Funksioni array() ndoshtanukeshteasgje me teper se njedeklarim me iqarteqepokrijohetnjevektor • Shembull $languages = array ("English", "Shqip", "Spanish"); Iralda Mitro
array() • Ne PHP mundtekrijoniedhevektoreteshoqeruar. Psh: $languages = array ("Spain" => "Spanish", “Shqiperi" => "Shqip", "United States" => "English"); // $languages["Spain"] = "Spanish" // $languages["Shqiperi"] = "Shqip" // $languages["United States"] = "English” • Perdorimiivektoreveteshoqeruareshteipershtatshemveçanerisht ne rastetkurperdorimiivleraveteindeksuaranuk ka kuptim. Iralda Mitro
list() • Kyfunksioneshteingjashem me array(), megjitheseperdoret per tedhenevleranjekohesishtvariablave, ngavlerat e marranganjevektor, me njeveprimtevetem. Sintaksa e tijeshte : • void list (variable1 [, variable2, ...] ) • Mundtejeteveçanerishtinevojshemkurmerretinformacioninganjebazetedhenashosenganjeskedar. • Supozojme se duamteformatojmedheteafishojmeinformacionin e marrenganjeskedartekst, kuçdorreshtiskedaritpermbaninformacionin e perdoruesit, duke perfshireketuemrin, profesionindhengjyren e preferuar, kusecilapjese e informacionitndahet me njevijetedrejte ( | ). Cdorresht do tedukejsi: • Al Pacino|Actor|green • Banderas|Actor|red • Neseperdorim list(), me njecikeltethjeshtemundtelexohetçdorresht, tecaktohetçdopjeseinformacioni ne njevariabel, teformatohendheteafishohentedhenatsipasnevojes. Iralda Mitro
list() // Per sakoheqenukeshtearriturfundiiskedarit (end-of-file), merrrreshtintjeter while ($line = fgets ($user_file, 4096)) : // perdor split() per tendareçdopjesetedhenash, // caktotedhenatsivleraper variablat$name,$occupation, dhe $color list ($name, $occupation, $color) = split ( "|", $line); // formatodheafishotedhenat print "Name: $name <br>"; print "Occupation: $occupation <br>"; print "Favorite color: $color <br>"; endwhile; Cdorresht do telexohet e teformatohetsipasrradhessi me poshte: Name: Al Pacino Occupation: Actor Favorite Color: green Iralda Mitro
range() • Kyfunksionofronnjemenyretelehtedheteshpejte per tekrijuardhembushurnjevektor me nje rang tecaktuarvlerashteplota (integer), duke percaktuarrangunngavlera me e vogelderitek me e madhja. array range (int low, int high) Shembull: $lottery = range(0,9); // $lottery = array(0,1,2,3,4,5,6,7,8,9); Iralda Mitro
Vektoret shume-dimensionale • Ne PHP mundtekrijojmeedhevektoreshume-dimensionale (vektorvektoresh) sime poshte: • dy-dimensional • $chessboard[1][4] = "King"; • $capitals["USA”]["Ohio"] = "Columbus"; • $kryeqytetet[“Britani”][“Skoci”]=“Celtics”; • tre-dimensional • $streets["USA“]["Ohio"]["Columbus"] = "Harrison"; • $rruget[“Albania”][“Tirana”][“Blloku”] = “Rruga Ismail Qemali”; Iralda Mitro
Vektoret shume-dimensionale PSh: Keminjevektorqepermbaninformacionrrethembelsiravedhedetajevetepergatitjes se tyre. Do teishteshume e veshtireterealizohejkjo me njevektornje-dimensional, prandajperdorimnjevektordy-dimensional: $desserts = array ( "Fruit Cup" => array ( "calories" => "low", "served" => "cold", "preparation" => "10 minutes" ), “Cake" => array ( "calories" => "high", "served" => "hot", "preparation" => "45 minutes" ) ); Iralda Mitro
Vektoret shume-dimensionale • Pasieshtekrijuarvektori, çdoelementimundt’ireferohemisipasçelesaveperkates: • $desserts["Fruit Cup"] ["preparation"] // kthen "10 minutes“ • $desserts[“Cake"] ["calories"] // kthen "high" • Vektoreveshume-dimensionalemundt’ujepenvlera ne tenjejtenmenyresiatanje-dimensionale: • $desserts["Cake"]["calories"] = "too many"; • // caktohetvlera "too many" per veçorine “calories” te "Cake" Iralda Mitro
Si i referohemi vektoreve shume-dimensionale? • Vektoreveshume-dimensionaleireferohemi ne njemenyrepak me ndryshe se tipevetetjeratetedhenave. Mundteperdorimoperatorin e ngjitjes se stringjeve: • print “Kalorite e kekutjane“. $desserts[“Cake"]["calories"]; • Osemundtevendosimvektorinshume-dimensionale ne kllapa {}: • print “Kalorite e kekutjane {$desserts[Cake][calories]}”; • Vereni! • nukperdorimthonjeza per çelesat e vektorit • nukka hapesirameskllapa {} dhereferimittevektorit. Iralda Mitro
Kapja e vlerave te vektorit • PHP ka disadisafunksione per temarrevleratdheçelesat e njevektori. • Funksioniin_array() perdoret per tepercaktuarshpejtnesenje element ndodhetapojo ne njevektordhekthen true nesendodhetdhe false, ne tekundert. Sintaksaeshte: boolin_array(mixed element, array array) • Ky funksion eshte i pershtatshem sepse eliminon perdorimin e cikleve per te kerkuar ne çdo element te vektorit. • Ne keteshembullperdoretin_array() per tekerkuarelementin "Russian" ne vektorin $languages: $languages = array ("English", "Shqip", "Spanish"); $exists = in_array("Russian", $languages); // false $exists = in_array("English", $languages); // true Iralda Mitro
array_keys() • Kyfunksionkthennjevektorqepermbantegjitheçelesatqendodhen ne vektorin input. Neseperdorniopsioninsearch_element, atehere do tekthejevetemçelesatqeikorrespondojneatijelementiteveçante, perndryshe do tekthehentegjitheçelesat e vektorit. • Sintaksaeshte: • array array_keys (array array, [search_element]) • Shembull per tekthyerçelesin e njeelementitedhene: $great_wines = array (“Australia” => “Hills 96”, “France” => “Vogue 97” , “Austria” => “Artinger 97”); $great_labels = array_keys($great_wines); // $great_labels = array(“Australia”, “France”, “Austria”); $great_labels = array_keys($great_wines, “Hills 96"); // $great_labels= array("Australia"); Iralda Mitro
Shembull - array_keys() $kryeqyetet = array (“Itali” => “Rome”, “Gjermani” => “Berlin”, “Spanje” => “Madrid”, “Kosove” => “Prishtine”); $shtetet = array_keys($kryeqyetet); $shtetet = array(“Itali”, “Gjermani”, “Spanje”, “Kosove”); Iralda Mitro
array_values() • Funksioniarray_values() kthennjevektorqepermbantegjithavleratqeperbejnevektorin input. Sintaksaeshte: • array array_values(array array) • Ne shembullin e meparshem perdorem array_keys() per temarreçelesat e vektorit, tani do teperdorimarray_values() per temarrevlerat e vektorit. $great_wines = array (“Australia” => “Hills 96”, “France” => “Vogue 97” , “Austria” => “Artinger 97”); $great_labels = array_values($great_wines); //$great_labels = array (“Hills 96”, “Vogue 97”, “Artinger 97”); Iralda Mitro
Shembull – array_values() $kryeqyetet = array (“Itali” => “Rome”, “Gjermani” => “Berlin”, “Spanje” => “Madrid”, “Kosove” => “Prishtine”); $qytetet = array_values($kryeqyetet); $qytetet = array(“Rome”, “Berlin”, “Madrid”, “Prishtine”); Iralda Mitro
Shtimi dhe heqja e elementeve • array_push() • Kyfunksionshtonnjeose me shumevlera ne fund tevektorit. • intarray_push(array array, mixed var, […]) • Gjatesia e vektorit do territet ne perpjestimtedrejte me numrin e vleraveqefuten ne vektor. • Shembull: $languages = array("Spanish", "English", "French"); array_push($languages, "Russian", "German", "Shqip"); Iralda Mitro
Shtimi dhe heqja e elementeve • array_pop() • Kyfunksioneshteikundertiifunksionitarray_push(), duke hequrnjevlerengafundiivektoritdhekthenketevlere. • mixed array_pop(array array) • Ne çdoiteracionarray_pop() do teshkurtojegjatesine e vektorit me 1. $languages = array ("Spanish", "English", "French", "Russian", "German", "Shqip"); $a_language = array_pop ($languages); // $a_language = "Shqip" $a_language = array_pop ($languages); // $a_language = "German” Iralda Mitro
Shtimi dhe heqja e elementeve • Ndryshimi kryesor ndermjet array_push() dhearray_pop() eshte se array_push() lejonteshtohendisaelementenjekohesisht, ndersaarray_pop() mundteheqeçdo here, vetemnganjeelement. • Arsyejapseperdorenarray_push() dhearray_pop() eshte se atoofrojnenjemenyretepaster per temanipuluarelementet e vektoritdhe per tekontrolluargjatesine pa u shqetesuar per vlerat e painicializuaraapoboshe. Iralda Mitro
Shtimi dhe heqja e elementeve • array_shift() • Kyfunksionvepronsiarray_pop(), vetem se aiheqnje element ngafillimi (ana e majte) e vektorit. Te gjitheelementet e mbeturtevektoritshtyhen me njenjesidrejtfillimittevektorit. • mixed array_shift (array array) • Shembull: $languages = array("Spanish", "English", "French", "Russian"); $a_language = array_shift($languages); // $a_language = "Spanish"; // $languages = array("English", "French", "Russian"); Iralda Mitro
Shtimi dhe heqja e elementeve • array_unshift() • Kyeshtefunksionikundert me array_shift, se shtonvlera ne fillimdheishtynvlerat e vektorit ne tedjathte: • intarray_unshift(array array, mixed var1 [, mixed var2. . .]) • Mundteshtoninjeose me shumevleranjekohesishtdhegjatesia e vektoritrritet ne perpjestimtedrejte me numrin e vleraveteshtuara. • Shembull: $languages = array ("French", "Italian", "Spanish"); array_unshift ($languages, "Russian", "Chinese"); // $languages = array ("Russian“, "Chinese“, // "French", "Italian", "Spanish"); Iralda Mitro
Shtimi dhe heqja e elementeve • array_pad() • Kyfunksionlejonqetezgjerohetnjevektor ne njemadhesiprecize, pratet’irritetmadhesia me njevlere default. • array array_pad(array array, intpad_size, mixed pad_value); • Parametripad_sizepercaktonmadhesine e re tevektorit. • Parametripad_valuepercaktonvleren default e ciladuhettevendoset ne tegjithepozicionet e rejatevektorit. • Nesepad_sizeeshtepozitive, ateherevektori do tezgjerohet ne tedjathte; ndersaneseeshte negative, ne temajte. • Nesevlera absolute e pad_sizeeshte me e vogelose e barabarte me gjatesine e vektorit, ateherenuk do tekryhetasnjeveprim. Iralda Mitro
Shtimi dhe heqja e elementeve • Shembullizgjerimittevektoritngafundi: • $weights = array (1, 3, 5, 10, 15, 25, 50); • $weights = array_pad($weights, 10, 100); • // The result is $weights = array(1, 3, 5, 10, 15, 25, 50, 100, 100, 100) • Shembullizgjerimittevektoritngafillimi: • $weights = array (1, 3, 5, 10, 15, 25, 50); • $weights = array_pad($weights, − 10, 100); • // The result is $weights = array(100, 100, 100, 1, 3, 5, 10, 15, 25, 50) • Shembullinjezgjerimitepasaktetevektorit: • $weights = array (1, 3, 5, 10, 15, 25, 50); • $weights = array_pad ($weights, 3, 100); • // The array $weights remains $weights = array (1, 3, 5, 10, 15, 25, 50) Iralda Mitro
Bredhja e elementeve te vektorit • reset() • Kyfunksion do terikthejeshenjuesin e vektorit, tekelementii pare ivektorit. Gjithashtuaikthenvleren e elementitte pare. Sintaksaeshte: • mixed reset (array array) • Shohimvektorin: • $fruits = array("apple", "orange", "banana"); • Supozojme se shenjuesiiketijvektorieshteivendosur ne elementin "orange." • Ekzekutimii: • $a_fruit = reset ($fruits); • do tadergojeshenjuesinperseri ne fillim, pratekelementi "apple", dhekthen ate vlerenese reset() perdoretsinjefunksion. Perndryshe, aiduhettethirretsi me poshte: • reset ($fruits); • Kykod do tedergojeshenjuesin ne fillim, pornuk do tekthejevlere. Iralda Mitro
Bredhja e elementeve te vektorit • each() • Kyfunksionkryendyveprimeçdo here qeekzekutohet. 1. Kthençiftinçeles-vlereqendodhet ne pozicioninkundodhetshenjuesiaktualisht, 2. Shtynshenjuesin per teelementipasardhes. Sintaksaeshte: • array each (array array) Iralda Mitro
Bredhja e elementeve te vektorit • prev() • Kyfunksionvepronnjellojsi next(), vetem se ai e kthenshenjuesinprapa me njepozicion, perpara se tekthejeelementinqegjen ne ate pozicionteshenjuesit. • Nesezhvendosja do taçojeshenjuesinperparaelementitte pare tevektorit , funksioni do tekthejefalse. Sintaksaeshte: mixed prev (array array) • ShenimNje problem me funksioninprev() eshte se ai do tektheje false edhe per nje element vektoriqeekzistonporqeeshte bosh. Nesejuinteresonthjeshtbredhja e vektorit, duhetteperdornifunksionin each(). Iralda Mitro
Bredhja e elementeve te vektorit • end() • Perdoret per tederguarshenjuesintekelementiifunditivektorit end (array array) • next() • Kyfunksion e zhvendosshenjuesin me njepozicion, perpara se tekthejeelementinqegjen ne ate pozicion. • Nqsgjatezhvendosjes se shenjuesit, ai do teshkoje pas elementittefundittevektorit, funksioninext() do tektheje false. Sintaksaeshte: mixed next (array array) • ShenimNje problem me next() eshteqeai do tekthejegjithashtu false edheneseelementiivektoritekzistonporeshte bosh. Nesejuinteresonthjeshtbredhja e vektorit, duhetteperdornifunksionin each(). Iralda Mitro
Bredhja e elementeve te vektorit Kyshembullperdor each() per tekthyerelementin e gjetur ne pozicioninkundodhetaktualishtshenjuesi: $spices = array("parsley", "sage", "rosemary", "thyme","pepper"); // make sure that array is set at first element reset($spices); // create array $a_spice, which will hold four values. $a_spice = each($spices); Me ekzekutimin e ketijkodi, vektori $a_spice do tepermbajeketoçifteçeles-vlere: • 0 => 0 • 1 => "parsley" • key => 0 • value => "parsley" • "Parsley" mundteafishohet duke perdorursecilenngashprehjet: • print $a_spice[1]; • print $a_spice["value"]; Iralda Mitro
Bredhja e elementeve te vektorit Krijimiinjetabele HTML ngaelementet e vektorit $languages = array ("Country" => "Language", "Spain" => "Spanish", "USA" => "English", "France" => "French", "Russia" => "Russian"); print "<table border=0>"; reset ($languages); // move pointer to 1st element $hd1 = key ($languages); // extract the first key and element $hd2 = $languages[$hd1]; // Print first key and element as table headers print "<tr><th>$hd1</th><th>$hd2</th></tr>"; Iralda Mitro
Bredhja e elementeve te vektorit next($languages); // move to next element set //Print table rows including keys and elements of array while ( list ($ctry,$lang) = each ($languages)) : print "<tr><td>$ctry</td><td>$lang</td></tr>"; endwhile; print "</table>"; // close table • Ngaekzekutimiiketijkodiafishohettabela: Iralda Mitro
Bredhja e elementeve te vektorit • array_walk() • Kyfunksionofronnjemenyretelehte per teaplikuarnjefunksion per tegjitheosedisaelementetenjevektori. Sintaksaeshte: intarray_walk(array array, string func_name, [mixed data]) • Funksioniidhenesiparameter inputifunc_name, mundteperdoret per shumeqellime, psh: kerkimiielementeveqekanenjekarakteristiketeveçanteosemodifikimiivleravetevetevektorit. • Funksionitfunc_nameduhett’ikalohentepaktendyvlera: e paraeshtevlera e vektoritdhe e dytaeshteçelesiivektorit. Nesejepetedheparametriopsional data, atehereai do tejetevlera e trete e func_name. IraldaMitro
Bredhja e elementeve te vektorit • Ne keteshembulltregohetsesimundteperdoretfunksioniarray_walk() per tefshiredublikatat (elementetqeperseriten) ne njevektor: function delete_dupes($element) { static $last=""; if ($element == $last) unset($element); else $last=$element; } $emails = array("blah@blah.com", "chef@wjgilmore.com", "blah@blah.com"); sort($emails); reset($emails); array_walk($emails,"delete_dupes"); //$emails = array("chef@wjgilmore.com", "blah@blah.com"); Iralda Mitro
Bredhja e elementeve te vektorit • array_reverse() • Kyfunksionofronnjemenyretelehte per tepermbysurrendin e elementevetevektorit. Sintaksaeshte: array array_reverse(array array) Shembull: $us_wine_producers = array ("California", "Oregon", "New York", "Washington"); $us_wine_producers = array_reverse ($us_wine_producers); // $us_wine_producers = array ("Washington", "New York", "Oregon", "California"); Iralda Mitro
Bredhja e elementeve te vektorit • array_flip() • Kyfunksion do teshkembeje (“flip”) tegjithaelementetçelesdhevleretevektorit. Sintaksaeshte: array array_flip(array array) • Shembull: $languages = array("Spain" => "Spanish", "France" => "French", "Italy" => "Italian"); $languages = array_flip($languages); // $languages = array("Spanish" => "Spain", // "French" => "France", // "Italian" => "Italy"); • Mbani mend qearray_flip()vetemshkembenkombinimetçeles/vleredhenukpermbyspozicionimin. Per tepermbysurpozicionimin e elementeve, perdorniarray_reverse(). Iralda Mitro
Madhesia e vektorit • sizeof() • Funksionisizeof() perdoretperdoret per tekthyernumrin e elementevetenjevektori. Sintaksaeshte: intsizeof (array array) • Shembull: $pasta = array("bowties", "angelhair", "rigatoni"); $pasta_size = sizeof($pasta); // $pasta_size = 3 Iralda Mitro
Madhesia e vektorit • count() • Kyfunksion, njellojsisizeof(), kthennumrin e elementevetevektorit. Sintaksaeshte: int count (mixed variable) • Ndryshimiivetemeshte se count() jeppak me shumeinformacion ne disaraste: • Nesevariableekzistondheeshtenjevektor, count() do tekthejenumrin e elementevetetij. • Nesevariableekzistonpornukeshtenjevektor, do tekthejevleren ‘1’. • Nesevariablenukekziston, do tekthejevleren ‘0’. Iralda Mitro
Bredhja e elementeve te vektorit • array_count_values() • Kyfunksioneshtenjevariacionisizeof() dhe count(), vetem se ainumeronfrekuencen e vleraveqeshfaqen ne vektor. Sintaksaeshte: array array_count_values (array array); • Kyfunksionkthennjevektorqe do teperdoresiçelesavlerat e vektorit, tedhenesi parameter ndersasivlera do teketefrekuencat e tyrekorresponduese, siçilustrohet ne shembullinmeposhtem: • $states = array("OH", "OK", "CA", "PA", "OH", "OH", "PA", "AK"); • $state_freq = array_count_values($states); • Vektori $state_freq do tepermbajetaniketolidhjeçeles/vlere: • $state_freq = array("OH" => 3, "OK" => 1, "CA" => 1, "PA" => 2, "AK" => 1); Iralda Mitro