Deşi, uneori, un tablou de valori (array) poate fi iritant în prelucrare, utilizarea lui este indubitabil evidentă. Astfel, vom prezenta câteva aspecte.
Moduri diferite de a reda array
Varianta 1
1 2 3 4 5 6 7 8 |
<?php $supereroi = array( "Batman"=>"Bruce Wayne", "Flash"=>"Barry Allen", "Superman"=>"Clark Kent" ); FOREACH ($supereroi AS $erou=> $persoana) { ECHO "<pre>$erou is $persoana.</pre>"; } ?> |
Varianta 2
Sursa: StackOverFlow.com
1 2 3 4 5 6 7 8 |
<?php $supereroi = [ ['Batman', 'Bruce Wayne'], ['Flash', 'Barry Allen'], ['Superman', 'Clark Kent'], ]; FOREACH ($supereroi AS [$erou, $persoana]) { ECHO "<pre>$erou is $persoana.</pre>"; } ?> |
Varianta 3
Redarea componentelor matricei este ca la varianta 1, dar diferă extragerea şi afişarea.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $supereroi = array( "Batman"=>"Bruce Wayne", "Flash"=>"Barry Allen", "Superman"=>"Clark Kent" ); reset($supereroi); FOR ($i=0; $i < count($supereroi); $i++) { ECHO "<pre>".key($supereroi)." is ".current($supereroi).".</pre>"; next($supereroi); } reset($supereroi); ?> |
Cele trei variante vor afişa:
1 2 3 |
Batman is Bruce Wayne. Flash is Barry Allen. Superman is Clark Kent. |
La varianta 3 merită menţionate rolul funcţiei reset() şi al metodelor folosibile:
-
- reset() mută pointerul intern la primul element al matricei. Ex: reset($supereroi) // afişează Bruce Wayne
- current() – returnează valoarea elementului curent dintr-un array. Ex: current($supereroi) // afişează Bruce Wayne
- end() – mută pointerul intern și redă ultimul element din array. Ex: end($supereroi) // afişează Clark Kent
- next() – mută indicatorul intern și redă următorul element din array. Ex: next($supereroi) // afişează Barry Allen
- prev() – mută pointerul intern și redă elementul anterior din matrice. Nu va afişa nimic, dacă suntem la începutul matricei.
- each() – returnează cheia și valoarea elementului curent și mută indicatorul intern înainte. Ex: each($supereroi) // afişează Array
- key() – redă cheia elementului din poziţia curentă. Ex: key($supereroi) // afişează Batman. Dacă nu ar fi matrice asociativă (adică, dacă ar fi doar array("Batman", "Flash", "Superman") ar reda 0 pentru prima situaţie, 1 pentru a doua etc.
Varianta 4
Dacă se doreşte doar o scurtă enumerare a conţinutului unei matrice, se poate folosi funcţia implode().
1 2 |
$supereroi = array('Batman', 'Flash', 'Superman'); ECHO implode(',',$supereroi); // Va afisa Batman, Flash, Superman |
La fel de bine se poate folosi şi join(): ECHO join(',', $supereroi);
Sursa: StockOverflow.com, W3Schools.com
Validare acces
1 2 3 4 5 |
IF (!in_array($rol, array("gestionar", "client"))) { ECHO '<br>Nu aveţi acces la această pagină!'; EXIT(); } |