Curs Web Development
Curs HTML
Curs CSS
Curs Javascript
Curs PHP
Curs Phyton
Curs SQL
Curs SEO

Indexed Arrays în PHP

Un indexed array (array indexat) este un array în care fiecare element are un index numeric, începând de la 0. Acest tip de array este util atunci când ordinea elementelor contează și vrei să le accesezi rapid prin poziție.

Crearea unui Indexed Array

<?php
$fructe = ["mere", "pere", "banane"];
?>

Accesarea elementelor

<?php
echo $fructe[0]; // afișează "mere"
echo $fructe[2]; // afișează "banane"
?>

Adăugarea unui element nou

<?php
$fructe[] = "portocale"; // adaugă la finalul array-ului
?>

Parcurgerea unui Indexed Array

<?php
foreach ($fructe as $fruct) {
    echo "Îmi place să mănânc $fruct <br>";
}
?>

Indexed arrays sunt baza pentru multe operații în PHP și servesc drept punct de plecare pentru arrays asociative sau multidimensionale.

Arrays asociative în PHP

Un associative array este un array unde elementele sunt stocate folosind chei personalizate în loc de indecși numerici. Acest lucru este util atunci când vrei să identifici valorile printr-un nume descriptiv în loc de poziția lor.

Crearea unui associative array

<?php
$persoana = [
    "nume" => "Ion",
    "varsta" => 30,
    "oras" => "Bucuresti"
];

var_dump($persoana);
?>

Accesarea valorilor

<?php
echo "Numele este: " . $persoana["nume"] . "<br>";
echo "Varsta este: " . $persoana["varsta"] . "<br>";
echo "Orasul este: " . $persoana["oras"] . "<br>";
?>

Adăugarea și modificarea elementelor

<?php
// Adăugăm o cheie nouă
$persoana["profesie"] = "Programator";

// Modificăm o valoare existentă
$persoana["varsta"] = 31;

var_dump($persoana);
?>

Parcurgerea unui associative array

<?php
foreach ($persoana as $cheie => $valoare) {
    echo "$cheie : $valoare <br>";
}
?>

Associative arrays sunt foarte utile pentru stocarea datelor cu structură clară, cum ar fi profiluri de utilizatori, setări de aplicații sau orice date unde numele câmpurilor contează mai mult decât poziția.

Exemplu practic: afișarea unui tabel HTML din array-uri

<?php
$utilizatori = [
    [
        "nume" => "Ion Popescu",
        "varsta" => 28,
        "oras" => "Bucuresti"
    ],
    [
        "nume" => "Maria Ionescu",
        "varsta" => 25,
        "oras" => "Cluj-Napoca"
    ],
    [
        "nume" => "Andrei Vasilescu",
        "varsta" => 32,
        "oras" => "Timisoara"
    ]
];
?>

<?php
echo '<table border="1" cellpadding="5">';
echo '<tr><th>Nume</th><th>Varsta</th><th>Oras</th></tr>';

foreach ($utilizatori as $user) {
    echo '<tr>';
    echo '<td>' . htmlspecialchars($user["nume"]) . '</td>';
    echo '<td>' . htmlspecialchars($user["varsta"]) . '</td>';
    echo '<td>' . htmlspecialchars($user["oras"]) . '</td>';
    echo '</tr>';
}

echo '</table>';
?>

În acest exemplu:

  • Avem un array multidimensional unde fiecare element este un associative array cu informații despre un utilizator.
  • Folosim foreach pentru a parcurge fiecare utilizator.
  • Fiecare utilizator este afișat într-un rând al tabelului HTML.
🔧 Exemplu PHP: afișarea unui tabel HTML din array-uri
<?php
// Definim array-ul multidimensional
$utilizatori = [
    [
        "nume" => "Ion Popescu",
        "varsta" => 28,
        "oras" => "Bucuresti"
    ],
    [
        "nume" => "Maria Ionescu",
        "varsta" => 25,
        "oras" => "Cluj-Napoca"
    ],
    [
        "nume" => "Andrei Vasilescu",
        "varsta" => 32,
        "oras" => "Timisoara"
    ]
];

// Afișăm într-un tabel HTML
echo '<table border="1" cellpadding="5">';
echo '<tr><th>Nume</th><th>Varsta</th><th>Oras</th></tr>';

foreach ($utilizatori as $user) {
    echo '<tr>';
    echo '<td>' . htmlspecialchars($user["nume"]) . '</td>';
    echo '<td>' . htmlspecialchars($user["varsta"]) . '</td>';
    echo '<td>' . htmlspecialchars($user["oras"]) . '</td>';
    echo '</tr>';
}

echo '</table>';
?>

Astfel, putem combina indexarea numerică a array-ului principal cu cheile descriptive din array-urile interne, făcând codul clar și ușor de întreținut.

Multidimensional Arrays în PHP

Un array multidimensional este un array care conține unul sau mai multe array-uri ca elemente. Este util atunci când vrem să stocăm și să organizăm date complexe, de exemplu tabele cu utilizatori, produse sau seturi de valori.

Exemplu practic: tabel cu note elevi

Definim un array multidimensional unde fiecare elev are mai multe note:

<?php
$elevi = [
    "Ion" => ["Matematica" => 9, "Romana" => 10, "Informatica" => 10],
    "Maria" => ["Matematica" => 8, "Romana" => 9, "Informatica" => 9],
    "Andrei" => ["Matematica" => 10, "Romana" => 8, "Informatica" => 10]
];

// Afișăm tabel HTML
echo '<table border="1" cellpadding="5">';
echo '<tr><th>Nume</th><th>Matematica</th><th>Romana</th><th>Informatica</th></tr>';

foreach ($elevi as $nume => $note) {
    echo '<tr>';
    echo '<td>' . htmlspecialchars($nume) . '</td>';
    echo '<td>' . htmlspecialchars($note["Matematica"]) . '</td>';
    echo '<td>' . htmlspecialchars($note["Romana"]) . '</td>';
    echo '<td>' . htmlspecialchars($note["Informatica"]) . '</td>';
    echo '</tr>';
}

echo '</table>';
?>

Acest exemplu arată cum putem stoca mai multe valori pentru fiecare element al array-ului și cum putem itera prin toate valorile pentru afișare.

🔧 Exemplu PHP: tabel cu note elevi
<?php
$elevi = [
    "Ion" => ["Matematica" => 9, "Romana" => 10, "Informatica" => 10],
    "Maria" => ["Matematica" => 8, "Romana" => 9, "Informatica" => 9],
    "Andrei" => ["Matematica" => 10, "Romana" => 8, "Informatica" => 10]
];

// Afișăm tabel HTML
echo '<table border="1" cellpadding="5">';
echo '<tr><th>Nume</th><th>Matematica</th><th>Romana</th><th>Informatica</th></tr>';

foreach ($elevi as $nume => $note) {
    echo '<tr>';
    echo '<td>' . htmlspecialchars($nume) . '</td>';
    echo '<td>' . htmlspecialchars($note["Matematica"]) . '</td>';
    echo '<td>' . htmlspecialchars($note["Romana"]) . '</td>';
    echo '<td>' . htmlspecialchars($note["Informatica"]) . '</td>';
    echo '</tr>';
}

echo '</table>';
?>

Funcții utile pentru array-uri în PHP

PHP oferă mai multe funcții încorporate pentru a manipula array-urile rapid și eficient. Cele mai folosite sunt: array_map, array_filter și array_merge.

1. array_map - aplică o funcție fiecărui element

Exemplu: creștem fiecare notă cu 1 punct:

<?php
$note = [8, 9, 10, 7];

$note_majorate = array_map(function($nota) {
    return $nota + 1;
}, $note);

print_r($note_majorate); // Output: [9, 10, 11, 8]
?>

2. array_filter - filtrează elementele unui array

Exemplu: păstrăm doar notele mai mari sau egale cu 9:

<?php
$note = [8, 9, 10, 7];

$note_bune = array_filter($note, function($nota) {
    return $nota >= 9;
});

print_r($note_bune); // Output: [9, 10]
?>

3. array_merge - combină două sau mai multe array-uri

Exemplu: combinăm două liste de elevi:

<?php
$grupa1 = ["Ion", "Maria"];
$grupa2 = ["Andrei", "Elena"];

$toata_clasa = array_merge($grupa1, $grupa2);

print_r($toata_clasa); // Output: ["Ion", "Maria", "Andrei", "Elena"]
?>

Aceste funcții fac manipularea array-urilor mult mai rapidă și codul mai curat. Pot fi folosite și împreună cu array-uri multidimensionale pentru procesarea datelor complexe.

Conversie JSON în PHP

JSON (JavaScript Object Notation) este un format foarte folosit pentru schimbul de date între server și client. PHP oferă două funcții principale: json_encode (convertim array sau obiect în JSON) și json_decode (convertim JSON în array sau obiect PHP).

1. json_encode - transformăm array-ul în JSON

<?php
$utilizatori = [
    ["nume" => "Ion", "varsta" => 25],
    ["nume" => "Maria", "varsta" => 22]
];

$json = json_encode($utilizatori);

echo $json;
// Output: [{"nume":"Ion","varsta":25},{"nume":"Maria","varsta":22}]
?>

2. json_decode - transformăm JSON-ul în array sau obiect

Exemplu: convertim JSON-ul în array asociativ:

<?php
$json = '[{"nume":"Ion","varsta":25},{"nume":"Maria","varsta":22}]';

$utilizatori = json_decode($json, true); // true => array asociativ

print_r($utilizatori);
/* Output:
Array
(
    [0] => Array
        (
            [nume] => Ion
            [varsta] => 25
        )

    [1] => Array
        (
            [nume] => Maria
            [varsta] => 22
        )
)
*/
?>

De ce folosim JSON în PHP?

  • Pentru a trimite date de la server la client (de ex. aplicații web cu JavaScript).
  • Pentru a stoca și încărca configurații sau date complexe în fișiere.
  • Este format standard, ușor de citit și compatibil cu majoritatea limbajelor de programare.

Exemplu practic - JSON în PHP

Să presupunem că avem o aplicație unde vrem să trimitem date despre utilizatori către un frontend JavaScript sau să le salvăm într-un fișier JSON. Vom vedea cum să transformăm un array PHP în JSON și cum să îl citim înapoi.

1. Crearea și conversia unui array în JSON

<?php
$utilizatori = [
    ["nume" => "Ion", "email" => "ion@example.com", "varsta" => 25],
    ["nume" => "Maria", "email" => "maria@example.com", "varsta" => 22],
    ["nume" => "Alex", "email" => "alex@example.com", "varsta" => 30]
];

// Convertim array-ul în JSON
$json = json_encode($utilizatori);

echo "<h4>JSON generat:</h4>";
echo "<pre>$json</pre>";
?>

2. Citirea unui JSON și utilizarea lui în PHP

<?php
// Să presupunem că $json vine dintr-un fișier sau de la API
$json = '[{"nume":"Ion","email":"ion@example.com","varsta":25},{"nume":"Maria","email":"maria@example.com","varsta":22},{"nume":"Alex","email":"alex@example.com","varsta":30}]';

// Transformăm JSON-ul în array asociativ
$utilizatori = json_decode($json, true);

echo "<h4>Lista utilizatorilor:</h4>";
echo "<ul>";
foreach ($utilizatori as $user) {
    echo "<li>" . $user['nume'] . " (" . $user['email'] . ") - " . $user['varsta'] . " ani</li>";
}
echo "</ul>";
?>
🔧 Exemplu PHP: Citirea unui JSON și utilizarea lui în PHP
<?php
// Să presupunem că $json vine dintr-un fișier sau de la API
$json = '[{"nume":"Ion","email":"ion@example.com","varsta":25},{"nume":"Maria","email":"maria@example.com","varsta":22},{"nume":"Alex","email":"alex@example.com","varsta":30}]';

// Transformăm JSON-ul în array asociativ
$utilizatori = json_decode($json, true);

echo "<h4>Lista utilizatorilor:</h4>";
echo "<ul>";
foreach ($utilizatori as $user) {
    echo "<li>" . $user['nume'] . " (" . $user['email'] . ") - " . $user['varsta'] . " ani</li>";
}
echo "</ul>";
?>

3. Exemple concrete de utilizare JSON

  • Trimitem date despre utilizatori către un frontend JavaScript pentru a afișa o listă dinamică.
  • Salvăm configurații ale aplicației într-un fișier JSON pentru a fi ușor editabile și citite ulterior.
  • Schimbăm date între servere sau API-uri folosind JSON ca format standard.
  • Exportăm sau importăm date complexe fără a depinde de structuri de baze de date relaționale.

🧠 Quiz - Arrays & Structuri de date în PHP

Top