Πίνακες (Arrays)

Οι πίνακες χρησιμοποιούνται στην περίπτωση που θέλουμε να καταχωρήσουμε πολλαπλές τιμές σε μία μόνο μεταβλητή. Δηλαδή ένας πίνακας είναι, επίσης, μία μεταβλητή. Η ιδιαιρότητά της έγκειται στο γεγονός ότι περιλαμβάνει ζεύγη τιμών, από τα οποία ή μία τιμή λέγεται δείκτης (index) ή κλειδί (key) και η άλλη είναι η πραγματική τιμή (value) που θέλουμε να καταχωρήσουμε. Υπάρχουν τα εξής τρία είδη πινάκων:

  • Numeric arrays (αριθμητικοί πίνακες): πίνακες με αριθμητικούς δείκτες.
  • Associative arrays: πίνακες όπου ο δείκτης μπορεί να είναι κείμενο.
  • Multidimensional arrays (πολυδιάστατοι πίνακες): πίνακες που οι τιμές τους αποτελούν επίσης πίνακες γι' αυτό και λέγονται πολυδιάστατοι πίνακες.


Numeric arrays
Είναι οι πίνακες όπου οι δείκτες τους είναι αριθμητικές τιμές. Μπορούμε να δημιουργήσουμε ένα πίνακα με τους εξής τρόπους:

Τρόπος 1
$fruits = array ( 'apple', 'orange', 'banana' );

Ο δείκτης ενός πίνακα ξεκινάει από τον αριθμό μηδέν. Επομένως, στην παραπάνω περίπτωση για να τυπώσουμε το πρώτο στοιχείο του πίνακα (apple), μπορούμε να γράψουμε:

echo $fruits [0];

Κατά αντιστοιχία τα $fruits [1] και $fruits [2] έχουν τιμή 'orange' και 'banana' αντίστοιχα.

Τρόπος 2
Μπορούμε να δηλώσουμε οι ίδιοι τους δείκτες του πίνακα και τις αντίστοιχες τιμές ως εξής:

$fruits [0] = 'apple';
$fruits [1] = 'orange';
$fruits [2] = 'banana';

Η πρόσβαση σε κάθε στοιχείο του πίνακα γίνεται με τον ίδιο τρόπο.


Associative arrays
Είναι οι πίνακες όπου μπορούμε να χρησιμοποιήσουμε δείκτες με κείμενο αντί για αριθμητικές τιμές. Μπορούμε να δημιουργήσουμε ένα πίνακα με δύο τρόπους. Έστω ότι θέλουμε σε ένα πίνακα να καταχωρήσουμε τα ονόματα σπουδαστών και να τα συνδέσουμε με το βαθμό τους στο μάθημα.

Τρόπος 1
$students = array ( "spyros" => 9, "maria" => 7, "nikos" => 8 );

Αν θέλουμε να τυπώσουμε το βαθμό του στοιχείου με δείκτη “spyros”, γράφουμε:

echo $students ["spyros"];

Τρόπος 2
Εναλλακτικά, μπορούμε να γράψουμε:

$students ["spyros"]  = 9;
$students ["maria"]  = 7;
$students ["nikos"]  = 8;


Multidimensional arrays
Οι πολυδιάστατοι πίνακες περιέχουν για στοιχεία άλλους πίνακες. Οι πίνακες αυτοί μπορούν, επίσης, να περιέχουν άλλους πίνακες, οπότε μεγαλώνει και η διάσταση του αρχικού πίνακα. Για παράδειγμα:

$students = array (
        array ( "name" => "spyros", "grade" => 9 ),
        array ( "name" => "maria", "grade" => 7 ),
        array ( "name" => "nikos", "grade" => 8 )
        );

Παρατηρώντας προσεκτικά τον παραπάνω κώδικα, βλέπουμε ότι έχουμε δημιουργήσει έναν numeric array (δείκτες 0, 1 και 2), τα στοιχεία του οποίου είναι associative arrays με δείκτες “name” και “grade”. Επομένω, αν θέλουμε να τυπώσουμε το όνομα του πρώτου σπουδαστή και το βαθμό του τρίτου σπουδαστή, μπορούμε να γράψουμε:

echo "Το όνομα του πρώτου σπουδαστή είναι ".$students [0] ['name']." και ο βαθμός του τρίτου σπουδαστή είναι ".$students [2] ['grade'].".";