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

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

Δημοσ.

Έχω τον πίνακα $results στον οποίο κατά τη δημιουργία του χρησιμοποίησα λέξεις ως keys.

Θέλω να ξάνω sort τις τιμές των κελιών για να μου δείχνει το μεγαλύτερο πάνω και κάθε να βάλει ανά αλφαβιτική σειρά τα keys με την ίδια τιμή. Με τον παρακάτω κώδικα κάνω τη δουλειά που θέλω απλά έχω ένα πρόβλημα... μου δημιουργεί ένα επιπλέον κελί στην αρχή την με key = 0 (δηλαδή το ορίζει ως πρώτο κελί).

foreach($results as $key => $value){
        $sword[] = $key;
        $appeared[] = $value;
    }
    
 array_multisort($appeared, SORT_DESC, $sword, SORT_ASC, $results);

Τι ακριβώς φταίει;

 

Γιατί πριν λίγο καιρό που έκανα ακριβώς το ίδιο, δε μου δημιουργούσε αυτό το έξτρα κελί.

Δημοσ.

Η ερώτησή σου δεν είναι ξεκάθαρη. Σε ποιό ακριβώς πίνακα είναι το έξτρα που λες; Τι περιμένεις να γίνει και τι γίνεται αντί γι' αυτό;

 

Γενικά πάντως αν έχεις integer κλειδιά στους πίνακές σου αυτά θα χαθούν και θα αριθμηθούν από την αρχή ξεκινώντας από το μηδέν. 

Δημοσ.

Στον $result γίνεται αυτό που είπα και μάλλον μόλις κατάλαβα τι φταίει.

Είπες ότι τα integer κλειδιά τα αναδημιουργεί από το 0... άρα το πρόβλημα είναι ότι εγώ έχω ένα κλειδί '2' και το κάνει '0'...

Αν αυτό

$sword[] = $key;

το αλλάξω σε

$sword[] = (string)$key;

Θα σώσω την κατάσταση ή όχι;

Δημοσ.

Δεν τα αναδημιουργεί, τα δημιουργεί, εσύ τα αφήνεις κενά.

 

$sword[$key] = ότι θες για value αν είναι μοναδικά τα keys που κάνεις iterate

Δημοσ.

Ναι έχω μέσα σε όλα τα κελιά, ένα που έχει key "2" = κάτι.... αυτό μου το κάνει "0" = κάτι...

αυτό πως θα γίνει να παραμείνει ίδιο;

Δημοσ.

Όχι, δε μπορείς να σώσεις την κατάσταση κάνοντάς το "2" σε string because PHP. Και δεν έχεις τρόπο να το γλυτώσεις αυτό πέρα από το να μη χρησιμοποιήσεις array_multisort.

Δημοσ.

Με λίγα λόγια πρέπει να βρω χωριάτικο τρόπο ώστε να κάνω το sorting :D

Οκ σας ευχαριστώ πολύ (@defacer στο τέλος θα πρέπει να σε πληρώνω για τις συμβουλές σου :P)

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

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

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

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

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

Σύνδεση

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

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