Matrice PHP: asociativÄ, multidimensionalÄ
⥠Rezumat inteligent
Tablourile PHP stocheazÄ multe valori corelate ÃŽntr-o singurÄ variabilÄ, facilitÃĸnd gruparea Či procesarea datelor corelate. Acest ghid prezintÄ tablourile numerice, asociative Či multidimensionale, operatorii de comparare a tablourilor Či funcČiile de bazÄ, cum ar fi numÄrarea, sortarea, ksort Či asortarea.

Ce este o matrice PHP?
O matrice PHP este o variabilÄ care stocheazÄ mai mult de o bucatÄ de date asociate ÃŽntr-o singurÄ variabilÄ.
GÃĸndiČi-vÄ la o serie ca la o cutie de ciocolatÄ cu sloturi ÃŽnÄuntru.
Caseta reprezintÄ matricea ÃŽn sine, ÃŽn timp ce spaČiile care conČin bomboane de ciocolatÄ reprezintÄ valorile stocate ÃŽn matrice.
Exemplele de mai jos ilustreazÄ cum funcČioneazÄ acest lucru.
Matrice numerice
Tablourile numerice folosesc numerele ca taste de acces.
O cheie de acces este o referinČÄ la un slot de memorie dintr-o variabilÄ matrice.
Cheia de acces este utilizatÄ ori de cÃĸte ori dorim sÄ citim sau sÄ atribuim o nouÄ valoare unui element al unui tablou.
Mai jos este sintaxa pentru crearea unui array numeric ÃŽn PHP.
Exemplu de matrice
<?php $variable_name[n] = value; ?>
Or
<?php
$variable_name = array(n => value, ...);
?>
AICI,
- â$variable_name...â este numele variabilei
- â[n]â este numÄrul indexului de acces al elementului
- âvaloareâ este valoarea atribuitÄ elementului matrice.
SÄ analizÄm acum un exemplu de matrice numericÄ.
SÄ presupunem cÄ avem 5 filme pe care dorim sÄ le stocÄm ÃŽn variabile matrice.
Putem folosi exemplul prezentat mai jos pentru a face asta.
<?php $movie[0] = 'Shaolin Monk'; $movie[1] = 'Drunken Master'; $movie[2] = 'American Ninja'; $movie[3] = 'Once upon a time in China'; $movie[4] = 'Replacement Killers'; ?>
Aici,
FiecÄrui film i se atribuie un numÄr de index care este utilizat pentru a recupera sau modifica valoarea sa. ObservaČi urmÄtorul cod.
<?php $movie[0]="Shaolin Monk"; $movie[1]="Drunken Master"; $movie[2]="American Ninja"; $movie[3]="Once upon a time in China"; $movie[4]="Replacement Killers"; echo $movie[3]; $movie[3] = " Eastern Condors"; echo $movie[3]; ?>
ieČire:
Once upon a time in China Eastern Condors
DupÄ cum puteČi vedea din exemplele de mai sus, lucrul cu matrice ÃŽn PHP atunci cÃĸnd aveČi de-a face cu mai multe valori de aceeaČi naturÄ este foarte uČor Či flexibil.
Alternativ, variabilele matrice de mai sus pot fi create Či folosind urmÄtorul cod.
<?php $movie = array(0 => "Shaolin Monk", 1 => "Drunken Master", 2 => "American Ninja", 3 => "Once upon a time in China", 4 => "Replacement Killers" ); echo $movie[4]; ?>
ieČire:
Replacement Killers
Matrice asociativÄ PHP
Tablourile asociative diferÄ de tablourile numerice prin faptul cÄ tablourile asociative folosesc nume descriptive pentru cheile de identificare.
Mai jos este sintaxa pentru crearea unui array asociativ ÃŽn PHP.
<?php $variable_name['key_name'] = value; $variable_name = array('keyname' => value); ?>
AICI,
- â$variable_name...â este numele variabilei
- â['key_name']â este cheia de acces a elementului
- âvaloareâ este valoarea atribuitÄ elementului matrice.
SÄ presupunem cÄ avem un grup de persoane Či vrem sÄ atribuim sexul fiecÄreia ÃŽn funcČie de numele lor.
Putem folosi un array asociativ pentru a face asta. Codul de mai jos ne ajutÄ sÄ facem asta.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); print_r($persons); echo ""; echo "Mary is a " . $persons["Mary"]; ?>
AICI,
ieČire:
Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female
Tablourile asociative sunt, de asemenea, foarte utile la recuperarea datelor din baza de date.
Numele cÃĸmpurilor sunt folosite ca chei de identificare.
PHP tablouri multidimensionale
Acestea sunt matrice care conČin alte matrice imbricate.
Avantajul matricelor multidimensionale este cÄ ne permit sÄ grupÄm datele asociate ÃŽmpreunÄ.
SÄ analizÄm acum un exemplu practic care implementeazÄ un array multidimensional PHP.
Tabelul de mai jos aratÄ o listÄ de filme pe categorii.
| Titlul filmului | Categorii |
|---|---|
| Pantera Roz | Comedie |
| John English | Comedie |
| Muri luptÃĸnd pÃĸnÄ la ultimÄ suflare | AcČiune |
| Expendables | AcČiune |
| Stapanul Inelelor | Epic |
| Romeo Åi Julieta | Romantism |
| Nu vezi rÄul nu auzi rÄul | Comedie |
InformaČiile de mai sus pot fi reprezentate ca o matrice multidimensionalÄ. Codul de mai jos aratÄ implementarea.
<?php $movies = array( "comedy" => array("Pink Panther", "John English", "See no evil hear no evil"), "action" => array("Die Hard", "Expendables"), "epic" => array("The Lord of the rings"), "Romance" => array("Romeo and Juliet") ); print_r($movies); ?>
AICI,
ieČire:
Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )
O altÄ modalitate de a defini aceeaČi matrice este urmÄtoarea.
<?php $film = array( "comedy" => array( 0 => "Pink Panther", 1 => "John English", 2 => "See no evil hear no evil" ), "action" => array ( 0 => "Die Hard", 1 => "Expendables" ), "epic" => array ( 0 => "The Lord of the rings" ), "Romance" => array ( 0 => "Romeo and Juliet" ) ); echo $film["comedy"][0]; ?>
ieČire:
Pink Panther
NotÄ: tabloul numeric âmoviesâ a fost imbricat ÃŽn tabloul asociativ âcategoriesâ.
Matrice PHP: Operatori
| OperaTdR | Nume | Descriere | Cum se face | producČie |
|---|---|---|---|---|
| x+y | Uniune | CombinÄ elemente din ambele matrice |
<?php $x = array('id' => 1); $y = array('value' => 10); $z = $x + $y; ?> |
Matrice([id] => 1 [valoare] => 10) |
| x == y | Egal | ComparÄ douÄ tablouri Či returneazÄ valoarea âtrueâ dacÄ sunt egale |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x == $y) { echo "true"; } else { echo "false"; } ?> |
AdevÄrat sau 1 |
| x === y | Identic | ComparÄ atÃĸt valorile cÃĸt Či tipuri de date |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x === $y) { echo "true"; } else { echo "false"; } ?> |
Fals sau 0 |
| x != y, x <> y | Nu este egal | ReturneazÄ true dacÄ cele douÄ matrice nu sunt egale |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x != $y) { echo "true"; } else { echo "false"; } ?> |
Fals sau 0 |
| x !== y | Nu identice | ReturneazÄ true dacÄ cele douÄ matrice nu sunt identice ca valoare sau tip. |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x !== $y) { echo "true"; } else { echo "false"; } ?> |
AdevÄrat sau 1 |
FuncČii PHP Array
FuncČia de numÄrare
FuncČia count este utilizatÄ pentru a numÄra elementele pe care le conČine un array PHP. Codul de mai jos prezintÄ implementarea.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo count($lecturers); ?>
ieČire:
3
funcČia is_array
FuncČia is_array este utilizatÄ pentru a determina dacÄ o variabilÄ este sau nu un tablou. SÄ analizÄm acum un exemplu care implementeazÄ funcČia is_array.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo is_array($lecturers); ?>
ieČire:
1
SorteazÄ
AceastÄ funcČie este utilizatÄ pentru a sorta tablourile dupÄ valorile lor.
DacÄ valorile sunt alfanumerice, le sorteazÄ ÃŽn ordine alfabeticÄ.
DacÄ valorile sunt numerice, le sorteazÄ ÃŽn ordine crescÄtoare.
EliminÄ tastele de acces existente Či adaugÄ taste numerice noi.
IeČirea acestei funcČii este un tablou numeric.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); sort($persons); print_r($persons); ?>
ieČire:
Array ( [0] => Female [1] => Female [2] => Male )
ksort
AceastÄ funcČie este folositÄ pentru a sorta matricea folosind cheia. UrmÄtorul exemplu ilustreazÄ utilizarea acestuia.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); ksort($persons); print_r($persons); ?>
ieČire:
Array ( [John] => Male [Mary] => Female [Mirriam] => Female )
sortiment
Aceasta funcÅŖie este folosit pentru a sorta matricea folosind valorile ÃŽn timp ce keeping tastele. UrmÄtorul exemplu ilustreazÄ utilizarea sa.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); asort($persons); print_r($persons); ?>
ieČire:
Array ( [Mary] => Female [Mirriam] => Female [John] => Male )
De ce sÄ folosiČi matrice?
- ConČinutul tablourilor poate fi extins pentru a conČine mai multe valori.
- Tablourile ajutÄ cu uČurinČÄ la gruparea informaČiilor conexe, cum ar fi detaliile de conectare la server.
- Matricele ajutÄ la scrierea unui cod mai curat.



