Προς το περιεχόμενο

PHP array list


Swinrrr

Προτεινόμενες αναρτήσεις

Καλή σας μέρα , υπάρχει στο php κάτι παρόμοιο με ArrayList() της JAVA . Ενα πρόβλημα εχω να λύσω

, θέλω να εισαγω τιμές μέσα στην λίστα και κάθε τιμή που θα μπαίνει μεσα θέλω να κάνει έλεγχο αν είναι μέσα στην λίστα .Τι τρόπος υπάρχει;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στην PHP δεν είναι ανάγκη να ορίσεις μέγεθος της array. Αν θέλεις να κάνεις κάτι τέτοιο μπορείς να χρησιμοποιήσεις την SplFixedArray (αλλά δεν βρίσκω τον λόγο). Όσο βάζεις στοιχεία μέσα στην array τόσο αυτή θα μεγαλώνει και το αντίστροφο. Στην PHP οι arrays είναι στην πραγματικότητα ordered maps. Αν κάνω λάθος ας με διορθώσει κάποιος.

 

Έλεγχο για το αν μια τιμή είναι σε μια array μπορείς να κάνεις με την in_array (http://php.net/manual/en/function.in-array.php).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στην PHP δεν είναι ανάγκη να ορίσεις μέγεθος της array. Αν θέλεις να κάνεις κάτι τέτοιο μπορείς να χρησιμοποιήσεις την SplFixedArray (αλλά δεν βρίσκω τον λόγο). Όσο βάζεις στοιχεία μέσα στην array τόσο αυτή θα μεγαλώνει και το αντίστροφο. Στην PHP οι arrays είναι στην πραγματικότητα ordered maps. Αν κάνω λάθος ας με διορθώσει κάποιος.

 

Δεν κάνεις λάθος, απλά μερικές λεπτομέρειες: όχι μόνο δεν είναι ανάγκη και δεν μπορείς κιόλας, και είναι συγκεκριμένα hashtables. Το τελευταίο το λέω γιατί μπορείς να υλοποιήσεις ordered map είτε με hashtable είτε με tree, και οι υλοποιήσεις έχουν διαφορετικά χαρακτηριστικά (παράδειγμα από .NET: SortedDictionary και SortedList).

 

SplFixedArray έχει νόημα να χρησιμοποιήσεις αν όντως θέλεις array και αν υπάρχει θέμα με το memory footprint (ο απλός array κάνει στη μνήμη ότι κάνει και η Βίκυ Σταμάτη στο χρήμα).

 

Ανάλογα με το τι ακριβώς προσπαθείς να κάνεις η in_array μπορεί να είναι άσχημη επιλογή γιατί είναι O(n) ενώ υπάρχουν και άλλες, συμπεριλαμβανομένου του να μην κάνεις τον έλεγχο σταδιακά (να αφήσεις duplicates δηλαδή) και να τα αφαιρέσεις μία και καλή στο τέλος.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...