Matrice asociative PHP. Matrice în PHP

Acasă / Nu merge

În acest articol, continuăm să învățăm elementele de bază ale PHP și să fim introduși în matrice. Separat, folosind exemple, ne vom uita la crearea unui tablou obișnuit, apoi vom trece fără probleme la tablouri asociative și multidimensionale. Materialul prezentat va fi suficient pentru a înțelege cu fermitate următoarea parte a elementelor de bază PHP, și anume matricele PHP.

Matrice PHP – Ce sunt matricele PHP și cum sunt create. Matrice simple (index).

Matricele în PHP joacă un rol foarte important și sunt utilizate pe scară largă la construirea site-urilor web. O matrice este o așa-numită variabilă (), care poate conține mai multe valori disponibile la anumiți indecși. Pentru a accesa informațiile despre matrice, trebuie doar să specificați numele matricei și indexul celulei de date. Pentru claritate, voi da un exemplu de structură a unui tablou de index simplu și a unei variabile.

După cum puteți vedea din imagine, diferența dintre o matrice și o variabilă nu este foarte mare. O variabilă poate lua o singură valoare, dar o matrice poate lua mai multe valori simultan. Mai mult, pentru a extrage informații dintr-o matrice, este suficient să indicați pur și simplu numele matricei și indexul pentru care sunt disponibile informațiile. Pentru o înțelegere mai completă, să ne uităm la un exemplu și să creăm o matrice, apoi să extragem informații din acesta și să le afișăm pe ecran.

/*Crearea unui tablou*/ $name = "A"; $nume = "B"; $nume = "C"; $nume = "D"; $nume = "E"; /*Afișează valoarea celulei matricei cu indexul 2 pe ecran*/ echo $nume;

În exemplul de mai sus, putem vedea că mai întâi creăm primul element al matricei cu indicele „0” și îi atribuim valoarea „A”. Apoi creăm restul de 4 elemente ale matricei în același mod. După aceasta, folosind operator ecou afișăm pe ecran al treilea element al matricei. După cum ați observat deja, pentru a afișa un element de matrice pe ecran, trebuie să specificați numele matricei și indexul celulei cu datele.

Pe lângă metoda de mai sus, o matrice în PHP poate fi creată într-un alt mod. Esența acesteia este utilizarea cuvântului cheie matrice. Pentru claritate, să ne uităm la același exemplu de creare a unei matrice, dar într-un mod diferit.

$nume = matrice (0 => "A", 1 => "B", 2 => "C", 3 => "D", 4 => "E");

Această metodă este, de asemenea, foarte simplă. Pentru a crea o matrice, creăm o variabilă $name, apoi punem un semn de atribuire „=" și indicăm că este o matrice. După aceea, creăm celule și le umplem cu date. Acest lucru se face prin specificarea unui index și atribuirea unei valori acestuia folosind semnele „=” și „>”. Adică, „0 => „A”” înseamnă că atribuim valoarea „A” celulei cu indicele „0”. Este puțin ciudat să explici acest subiect în text, dar cred că înțelegi despre ce vorbesc.

De asemenea, aș dori să notez imediat că, dacă indicele primului element din matricea creată este zero, atunci indicii nu trebuie introduși. În acest caz, PHP va adăuga indici automat începând de la zero. Toate acestea vor arăta așa.

Prima opțiune pentru crearea de matrice în PHP

$nume = "A"; $nume = "B"; $nume = "C"; $nume = "D"; $nume = "E";

A doua opțiune pentru crearea de matrice în PHP

$nume = matrice ("A", "B", "C", "D", "E");

Matrice asociative PHP

Matricele asociative sunt un alt tip de matrice PHP. Diferența dintre tablourile asociative și tablourile simple sunt indecși. Dacă în tablourile simple aceștia erau indici numerici, atunci în tablourile asociative acești indici sunt text. Acest lucru face ca tablourile asociative să fie mai organizate și mai semnificative. Datorită acestui fapt, ele sunt mai utilizate pe scară largă decât cele index simple.

Matricele asociative sunt create într-un mod similar. Să luăm în considerare 2 metode principale.

Prima modalitate de a crea o matrice asociativă.

$color["white"] = "alb"; $color["black"] = "negru"; $color["red"] = "rosu"; $color["green"] = "verde"; $color["blue"] = "albastru";

A doua modalitate de a crea o matrice asociativă.

$culoare = matrice("alb" => "alb", "negru" => "negru", "rosu" => "rosu", "verde" => "verde", "albastru" => "albastru") ;

După cum puteți vedea, procedura de creare a unui tablou asociativ este identică cu procedura de creare a unui index. Pentru a afișa un element de matrice pe ecran, putem folosi . Să luăm în considerare două metode - cea obișnuită și utilizarea andocării variabile.

Echo „Culoare selectată - $culoare”; echo „Este selectată culoarea „.$culoare[„roșu”].”;

După cum ați observat deja, în primul caz indexul celulei nu este cuprins între ghilimele duble. Această regulă trebuie reținută imediat pentru a evita greșelile în viitor. Dacă utilizați prima metodă și doriți să afișați un element de matrice fără a asocia variabile, atunci indexul nu este citat. În al doilea exemplu, după cum puteți vedea, totul este scris ca de obicei și ghilimele nu sunt eliminate.

Personal, îmi place mai mult prima metodă, deoarece, după părerea mea, este mult mai simplă decât a doua și necesită mai puțini pași de implementat. Totuși, depinde de tine să alegi ce metodă vei folosi.

Acum să trecem la ultima parte a articolului și să ne uităm la matricele multidimensionale PHP.

Matrice multidimensionale PHP

O matrice multidimensională este o matrice care conține o altă matrice. Pentru claritate, să implementăm o matrice multidimensională folosind trei tipuri de computere ca exemplu. În cazul nostru este computer desktop, laptop si netbook. Caracteristicile vor fi volumul RAM, volum hard diskși frecvența procesorului. Schematic, o matrice PHP multidimensională pentru rezolvarea acestei probleme poate arăta astfel.

Puteți crea o matrice multidimensională, ca toate celelalte, în mai multe moduri. Pentru a economisi timp, vom lua în considerare doar a doua metodă. Cred că ați memorat deja cum sunt create matricele în PHP și nu ar trebui să aveți probleme cu el.

$massiv["Desktop PC"] = matrice ("RAM" => "4096", "HDD" => "500", "GC" => "3"); $massiv["Laptop"] = matrice ("RAM" => "3072", "HDD" => "320", "GC" => "2"); $massiv["Netbook"] = matrice ("RAM" => "2048", "HDD" => "250", "GC" => "1.6");

Pentru a afișa un element al unui tablou multidimensional pe ecran în PHP, este suficient să folosiți operatorul de ieșire echo și metoda de andocare variabilă, deoarece în altfel(fără variabile de andocare) elementul unui tablou multidimensional nu va fi afișat. Aceasta este o altă diferență atunci când lucrați cu matrice multidimensionale PHP.

Echo „Un PC desktop cu capacitate RAM „.$massiv[”Desktop PC”][”RAM”].” și capacitate hard disk „.$massiv[”Desktop PC”][”HDD”].” are o frecvență de procesor din " . $massiv["Desktop PC"]["GC"]. „GC.”;

Acum hai hai sa rezumam toate cele de mai sus.

În acest articol, ne-am uitat la trei tipuri de matrice - index, asociativ și multidimensional. Am învățat cum să creăm matrice în PHP, precum și cum să extragem un element de matrice și să îl afișam pe ecran. Au fost abordate elementele de bază ale lucrului cu matrice, precum și câteva reguli pentru afișarea elementelor pe ecran.

Aceasta încheie acest articol. Daca nu vrei sa ratezi ultimele actualizări blog, vă puteți abona la newsletter în orice mod convenabil pentru dvs. în secțiunea „” sau puteți utiliza formularul de mai jos.

Asta e tot. Mult succes si ne vedem in curand pe paginile blogului

Matrice este o structură de date care stochează una sau mai multe valori identice într-o singură valoare. De exemplu, dacă doriți să stocați 100 de numere, atunci în loc să definiți 100 de variabile, este ușor să definiți o matrice cu lungimea de 100.

Sunt trei diferite tipuri matrice, iar fiecare valoare de matrice este accesată de un identificator c numit index de matrice.

  • Matrice numerică- o matrice cu index numeric. Valorile sunt stocate și accesate într-o manieră liniară.
  • Matrice asociativă- un tablou cu șiruri ca index. Aceasta stochează valorile elementelor în combinație cu valorile cheii, mai degrabă decât o ordine strictă a indexului liniar.
  • Matrice multidimensională. O matrice care conține una sau mai multe matrice și valori este accesată folosind mai mulți indecși

Matrice numerică

Aceste matrice pot stoca numere, șiruri de caractere și orice obiect, dar indexul lor va fi reprezentat prin numere. În mod implicit, indexul matricei începe de la zero.

Exemplu

Mai jos este un exemplu de creare și accesare a tablourilor numerice.

Aici am folosit funcția array() pentru a crea o matrice. Această caracteristică este explicată în descrierea caracteristicii.

;
) ?>

Valoarea este 1
Valoarea este 2
Valoarea este 3
Valoarea este 4
Valoarea este 5
Valoarea este una
Valoarea este două
Valoarea este trei

Valoarea este patru

Valoarea este cinci

Matrice asociative Matricele asociative sunt foarte asemănătoare cu tablourile numerice în ceea ce privește funcționalitatea, dar diferă ca indice. O matrice asociativă va avea indexul ca șir, astfel încât să puteți stabili o relație puternică între cheie și valori. Pentru a stoca salariile angajaților într-o matrice, o matrice cu index numeric nu ar fi

cea mai buna alegere. În schimb, am putea folosi numele angajaților ca chei în matricea noastră asociativă, iar valoarea ar fi salariul corespunzător. NOTA. Nu stocați o matrice asociativă în interior

Exemplu

ghilimele duble

în timpul tipăririi, altfel nu va returna nicio valoare.

Salariul lui Mohammad este 2000
Salariul lui qadir este 1000
Salariul lui Zara este de 500
Salariul lui Mohamed este mare
Salariul lui qadir este mediu
Salariul lui Zara este mic

Matrice multidimensionale

Matrice multidimensională Fiecare element din matricea principală poate fi, de asemenea, o matrice. Și fiecare element din sub-matrice poate fi o matrice și așa mai departe. Valorile dintr-o matrice multidimensională sunt accesate folosind mai mulți indici.

Exemplu

În acest exemplu, creăm o matrice bidimensională pentru a stoca notele a trei elevi la trei materii. Acest exemplu este o matrice asociativă, puteți crea o matrice numerică în același mod.

matrice ("fizică" => 35, "matematică" => 30, "chimie" => 39), "qadir" => matrice ("fizică" => 30, "matematică" => 32, "chimie" => 29), „zara” => matrice („fizică” => 31, „matematică” => 22, „chimie” => 39));

în timpul tipăririi, altfel nu va returna nicio valoare.

/* Accesarea valorilor de matrice multidimensionale */ echo „Marcurile pentru mohammad în fizică:” ;
echo $marks["mohammad"]["fizica"] . " ";
echo "Note pentru qadir la matematică: "; echo $marks["qadir"]["matematica"] . " "; echo „Note pentru zara în chimie:” ; echo $marks["zara"]["chimie"] . " "; ?>În acest scurt articol vom analiza mai multe moduri de a lucra cu matrice. Este de remarcat faptul că acesta este unul dintre cele mai importante tipuri de date și este chiar dificil să ne imaginăm limbaje de programare moderne fără ele. Ce este o matrice?

Un tablou este un set structurat de date.

Prin structura lor se poate determina acest lucru

matrice simplă sau asociativ . Este imposibil să spunem cu siguranță care dintre ele este mai bună, pentru că... Un tip sau altul ar trebui folosit în funcție de situație. Cum se creează o matrice simplă în PHP
Iată cum arată o matrice simplă:

Aș vrea să vă atrag imediat atenția asupra datelor (da, le-am notat așa intenționat :)). Tipul de date șir sauşir

scrieți întotdeauna între ghilimele, nu contează care dintre ele, atât cele simple, cât și cele duble vor funcționa (principalul este că rândul începe și se termină cu același ghilime). Numărul 29 are un tip
0,1,2 întreg

, sau număr - ghilimele nu sunt necesare pentru aceste tipuri de date.

Să verificăm cum arată matricea $my_array:

"; print_r($my_array); echo"

"; /* obține Array ( => Chair => Cloud => 29) */ ?>

Așa arată o matrice simplă.

— indexurile matricei noastre. Cu ajutorul indicilor putem deduce ceva specific dintr-o matrice.

De asemenea, putem crea aceeași matrice dacă scriem: Și, există o a treia cale:. Adică, nu vom mai folosi 0,1 sau 2 pentru a accesa valori. Să scriem tabloul nostru simplu ca asociativ:

Scaun => Cloud => 29) */ ?>

Și pentru a suna vom folosi

În loc de numărul ( index) setăm un nume (asociere) semnificativ și indexul nostru poate fi acum apelat cheie matrice(articol, cer, număr). Cea mai populară și, probabil, cea mai convenabilă notație pentru o matrice asociativă:

„Scaun”, „cer” => „Nor”, „număr” => 29); ?>

Matrice multidimensională

Câteva cuvinte despre acest gigant :)

matrice ("culoare" => "rosu", "an" => "2010", "mark" => "M5"), "audi" => matrice ("culoare" => "negru", "an" = > "2011", "mark" => "TT")); print_r($auto); // ieșire matrice echo $auto["bmw"]["mark"]; // M5 ?>

După cum înțelegeți, în loc de o valoare care înainte era un șir sau un număr, acum există un tip de date, cum ar fi o matrice ( Îți voi face o matrice într-o matrice, astfel încât atunci când apelezi matricea să existe o altă matrice :)).

Lecția va acoperi posibilitățile de lucru cu tablouri în PHP, declararea unui tablou, tipuri de tablouri: tablouri multidimensionale și asociative

  1. Matrice cu indici numerici
  2. $fruits="măr"; $fructe="pere"; $fructe="portocale"; $fruits="caise";

    Această opțiune pentru inițializarea matricei nu este practic utilizată astăzi. Se folosește următoarea opțiune pentru lucrul cu matrice:

  3. Matrice asociativă
  4. Această opțiune pentru crearea unei matrice folosește un obiect matrice:

    $fructe = array(1 => "mere", 2 => "pere", 3 => "portocale", 4 => "caise"); // Din PHP 5.4 $fruits = array[ 1 => "măr", 2 => "pere", 3 => "portocale", 4 => "caise" ];

    Accesarea elementelor de matrice

    1 2 3 4 5 6 7 8 $fructe [ 0 ] = „măr” ; $fructe [ 1 ] = "pere" ;$fructe [ 2 ] = "portocale" ;
    $fructe [ 3 ] = „caisă” ; ecou„Primul element al matricei este „
    $fructe [ 3 ] = „caisă” ; .$fructe[0]. "
    " ;

    "; ecou
    "Al doilea element al matricei este "
    .
    ";

    $fructe[1]. "

    „Al treilea element al matricei este „. sau)

    $fructe[2]. "

    $fruits="măr"; $fructe="pere"; $fructe="portocale"; $fruits="caise"; echo „Primul element al matricei este „. $fructe.""; echo "Al doilea element al matricei este ". $fruits ."

    "; echo "Al treilea element al matricei este ". $fruits ."


    ";

    $student["Name"] = "Ioan"; $student["Surname"] = "Smith"; $student[„Vârsta”] = 20; echo „nume de utilizator” . $student[„Nume”] . "
    "; echo "numele utilizatorului" . $student["Numele de familie"] . "
    "; echo "vârsta utilizatorului" . $student["Vârsta"] . "
    ";

    Rezultat:

    „Al treilea element al matricei este „ Cheile șiruri de caractere (indexuri) trebuie să fie întotdeauna cuprinse între ghilimele

    Matrice indexate fără cheie:

    De asemenea, trebuie luat în considerare faptul că indecșii din matrice nu trebuie să fie deloc scrisi atunci când inițializați matricea cu valori. Apoi creăm așa-numitul colecție-matrice(obiect de colectie):

    $student = matrice ("Ioan" , "Smith" , 20 ) ;

    $student = array("Ioan","Smith", 20);

    În acest caz, interpretul însuși le va atribui indici numerici, începând de la 0

    Exemplu conversii de tip și rescrierea elementelor.
    Observați utilizarea procedurii var_dump().

    1 2 3 4 5 6 7 8 9 "a" , "1" => "b" , 2 => "c" , 2 => "d" , ) ;

    var_dump ($my_array) ;

    Rezultat:

    ?>

    Exemplu"a", "1" => "b", 2 => "c", 2 => "d",); var_dump($my_array); ?> Array(3) ( => string(1) "a" => string(1) "b" => string(1) "d" ) utilizare

    1 2 3 4 5 6 7 8 9 10 11 12 matrice multidimensională

    și organizarea accesului la elementele sale

    Rezultat:

    "1" , 2 => 2 , "multi" => matrice ( "1_1" => "1_1" ) ) ;

    $fruits="măr"; $fructe="pere"; $fructe="portocale"; $fruits="caise"; echo „Primul element al matricei este „. $fructe." var_dump($array_odnom["primul"]);


    var_dump($array_odnom[2]);
    1 2 3 4 5 6 7 8 9 10 11 12 var_dump($array_odnom["multi"]["1_1"]);

    ?>

    "1", 2 => 2, "multi" => matrice ("1_1" => "1_1")); var_dump($array_odnom ["primul"]); var_dump($array_odnom); var_dump($array_odnom ["multi"]["1_1"]); ?> String(1) „1” int(2) string(3) „1_1”



    creați o matrice bidimensională cu dimensiuni 3 x 2. Completați-o cu valori pentru prima linie: „1_1”, „1_2”, „1_3”; pentru a doua linie: „2_1”, „2_2”, „2_3”. Afișează primul element al unui tablou
    Execuţie:

    Utilizați șablonul de anunț și concentrați-vă pe culori:

    Roșu – matrice.
    Maro – variabilă numerică.
    Albastru – constant.

    Dragă Ivan Ivanovici!
    Vă invităm să ziua porților deschise.
    Data evenimentului: 12 mai.
    Salutări, Vasily.


    Completează codul:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // declararea unei constante define("SEMNĂ" , „Cu stimă, Vasia”) ; // matrice pentru numele destinatarilor$nume = matrice (...) ; // matrice pentru evenimente$events = array("op_doors" => "ziua porților deschise", "vistavka" => "expoziție", ... ) ; $str =
    "
    „Dragi $names!

    ;
    $str .= ...;

$str .= ...; ecou...; echo „Note pentru zara în chimie:” ; // declararea unei constante define("SIGN","Regards, Vasya"); // matrice pentru numele destinatarilor $nume = matrice(...); // matrice pentru evenimente $events = array("op_doors" => "zi porți deschise", "vistavka" => "expoziție", ...); $str = "Dragi $nume!"; $str .= ...; $str .= ...; ecou ...;

Elementele matrice în PHP pot conține valori de orice tip, cum ar fi numere, șiruri, obiecte. Ele pot conține și alte matrice, ceea ce înseamnă în esență crearea

multidimensionale

cuibărit

matrice.

Acest tutorial acoperă matrice PHP multidimensionale (imbricate). Explică cum să le creezi, cum să le manipulezi și cum să faci buclă printr-o întreagă matrice multidimensională în PHP.

Cum se creează o matrice multidimensională

Puteți crea o matrice multidimensională folosind constructul array(), care este foarte asemănător cu crearea unei matrice obișnuite. Diferența este că într-o matrice multidimensională, fiecare element este, de asemenea, o matrice.

De exemplu:

$myArray = matrice(matrice(valoare1, valoare2, valoare3), matrice(valoare4, valoare5, valoare6), matrice(valoare7, valoare8, valoare9));

$myArray = matrice(matrice(matrice(valoare1, valoare2), matrice(valoare3, valoare4)), matrice(matrice(valoare5, valoare6), matrice(valoare7, valoare8)));

Accesarea elementelor dintr-o matrice multidimensională

Pentru a accesa elementele unui tablou multidimensional, puteți utiliza sintaxa „paranteze pătrate” care este folosită pentru a lucra cu o matrice obișnuită. Dacă trebuie să accesați elementele de al doilea nivel într-o matrice bidimensională, trebuie doar să utilizați un al doilea set de paranteze drepte, astfel:

$myArray = array(array(„unu”, „două”, „trei”), array(„patru”, „cinci”, „șase”)); // Imprimă „six” echo $myArray; ?>

Iată un exemplu care demonstrează accesarea diferitelor elemente ale matricei multidimensionale $movies pe care am creat-o mai devreme:

Echo „Titlul primului film:
"; echo $movies["titlu"] ."

"; ecou "Regizorul celui de-al treilea film:
"; echo $movies["director"] ."

"; echo "Matricea imbricată care este conținută în primul element:
"; print_r($filme); echo"

";

Rularea codului va produce următorul rezultat:

Titlul primului film: Rear Window Regizorul celui de-al treilea film: Martin Scorsese Matrice imbricată conținută în primul element: Array ( => Rear Window => Alfred Hitchcock => 1954)

Ultimul exemplu folosește $movies pentru a accesa întreaga matrice imbricată în primul element de matrice de nivel superior și apoi utilizează funcția print_r() pentru a imprima conținutul matricei.

Organizarea unei bucle prin toate elementele unui tablou multidimensional

La fel ca pentru o matrice unidimensională obișnuită, puteți utiliza foreach pentru a itera prin toate elementele unei matrice multidimensionale. Trebuie să creați o buclă foreach imbricată, adică o buclă în interiorul alteia:

  1. Bucla exterioară preia fiecare element al matricei de nivel superior.
  2. Pentru fiecare element de nivel superior, bucla interioară iterează prin matricea imbricată și așa mai departe.

Exemplul creează o matrice bidimensională cu informații despre filme și apoi organizează o buclă prin elementele matricei pentru a afișa informațiile pe pagină:

$movies = array(array("title" => "Geatra din spate", "director" => "Alfred Hitchcock", "year" => 1954), array("title" => "Full Metal Jacket", "director" " => "Stanley Kubrick", "an" => 1987), array("title" => "Străzi medii", "director" => "Martin Scorsese", "an" => 1973)); foreach ($movies ca $movie) ( ecou "

"; foreach ($movie ca $key => $value) ( ​​​​echo "
$key
$valoare
";) ecou"
"; }

Rularea acestui cod va produce următorul rezultat:

Titlu Regizor Rear Window Alfred Hitchcock anul 1954 titlu Full Metal Jacket regizor Stanley Kubrick anul 1987 titlu Mean Streets regizor Martin Scorsese anul 1973

Relua

Matricele multidimensionale sunt potrivite pentru stocarea oricărui tip de date, cum ar fi stocarea mai multor înregistrări de baze de date sau valori pentru afișare în tabele. Utilizarea tablourilor multidimensionale poate îmbunătăți funcționalitatea scripturilor PHP.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații