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

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

Δημοσ.

Γεια σας παιδιά,

Έστω ότι έχω ένα array της παρακάτω μορφής:

$arr = [
	["rafinos","1"],
	["rafinos","2"],
	["rafinos","3"],
	["rafinos","4"],
	["rafinos1","1"],
	["rafinos2","1"],
	["rafinos","5"],
	["rafinos2","2"],
	["rafinos2","3"],
	["rafinos1","2"],
	["rafinos","6"]
];

Πως μπορώ να κάνω unique τον πίνακα ως προς την πρώτη τιμή κάθε sub_array;
Για παράδειγμα ο παραπάνω πίνακας θα έπρεπε να γίνει έτσι:

$arr = [
	["rafinos","1"],
	["rafinos1","1"],
	["rafinos2","1"]
];

Το να τρέξω ένα loop και να αποθηκεύω σε ένα $temp το $arr[$i][0] και να κάνω τον έλεγχο δεν βοηθάει μιας που δεν είναι απαραίτητα στη σειρά οι τιμές (εμένα με ενδιαφέρει να μένει μόνο η πρώτη τιμή του κάθε [$i][0]). 

  • Λύση
Δημοσ.

Αν κατάλαβα τι εννοείς:

$t=[];
foreach($arr as $el) if(!isset($t[$el[0]])) $t[$el[0]]=$el[1];
$r=[];
foreach($t as $k=>$v) $r[]=[$k,$v];

Στο $r είναι το αποτέλεσμα που θέλεις.

  • Thanks 1
Δημοσ. (επεξεργασμένο)
21 λεπτά πριν, geomagas είπε

Αν κατάλαβα τι εννοείς:

$t=[];
foreach($arr as $el) if(!isset($t[$el[0]])) $t[$el[0]]=$el[1];
$r=[];
foreach($t as $k=>$v) $r[]=[$k,$v];

Στο $r είναι το αποτέλεσμα που θέλεις.

Δεν το σκέφτηκα καθόλου... Τόσο απλό! Χωρίς να το δοκιμάσω φαίνεται ότι είναι μια χαρά. Σε ευχαριστώ! :)

Επεξ/σία από rafinos

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

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

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

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

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

Σύνδεση

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

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