Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 20:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Einen Unique Array erstellen

Discussion on Einen Unique Array erstellen within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Royal*'s Avatar
 
elite*gold: 63
Join Date: Nov 2012
Posts: 2,123
Received Thanks: 500
Einen Unique Array erstellen

Guten Abend liebe Community,

derzeitig verzweifle ich an einem relativ simplen Thema. Ich möchte momentan ein Array mit 10 ID's befüllen, welche ich aus meiner Datenbank hole, dies mache ich damit:

PHP Code:
while( $counter <= 10 ) {
  
$blacklist['$counter'] = rand1$max_ids );
  
$counter += 1;

Soweit so gut, dies funktioniert auch einwandfrei. Nun kommen auch doppelte ID's vor, was auch vollkommen logisch ist. Jedoch habe ich nun das Problem, das wenn ich die doppelten ID's rauslöschen möchte, dies nicht so funktioniert wie ich möchte. Das rauslöschen versuche ich damit:

PHP Code:
$blacklist array_unique($blacklistSORT_NUMERIC); 
Aus irgendwelchen, für mich nicht nachvollziehbaren, gründen, kommt hierbei immer wenn ich ausgeben möchte wie viele ID's darin gespeichert werden, der Wert 1 heraus. Die Länge ermittle ich so:

PHP Code:
$length count($blacklist); 
Ich muss ehrlich gestehen, ich bin mit meiner Logik etwas am Ende. Auch wenn es eigentlich ziemlich simple wirkt, komme ich nicht mehr voran.

Also, nochmal alles zusammengefasst, was genau ich machen möchte:

Ich möchte ein Array mit 10 verschiedenen ID's befüllen, hierbei lese ich diese aus einer Datenbank heraus und speichere sie mittels einer Schleife in einem Array. Durch eine Funktion, bzw. eine Logik, möchte ich das die doppelten ID's aus dem Array gelöscht werden und neue ID's hinzugefügt werden, welche es noch nicht im Array gibt. Das soll solange ausgeführt werden, bis die 10 ID's erreicht sind.

Es würde mich wirklich sehr freuen, wenn mir jemand bei diesem kleinen Logik Problem behilflich sein könnte.

Einen schönen Abend noch und ein großes Dankeschön im voraus!
Royal* is offline  
Old 04/03/2017, 21:00   #2



 
Shawak's Avatar
 
elite*gold: 0
The Black Market: 259/0/0
Join Date: Apr 2010
Posts: 10,289
Received Thanks: 3,613
Das könnte daran liegen, das array_unique eine hashmap zurückgibt.

Versuch doch mal mit foreach durch diese zu iterieren.
Shawak is offline  
Thanks
1 User
Old 04/03/2017, 21:09   #3
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,488
Quote:
Originally Posted by Royal* View Post
PHP Code:
while( $counter <= 10 ) {
  
$blacklist['$counter'] = rand1$max_ids );
  
$counter += 1;

Keine Ahnung ob das schon ein Problem löst, aber hier darfst du keine Single-Quotes benutzen, sonst evaluiert die Variable nicht.

Ansonsten funktioniert dein Beispiel bei mir bestens:
Code:
/home/florian0/test.php:13:
array(11) {
  [0] =>
  int(5)
  [1] =>
  int(5)
  [2] =>
  int(5)
  [3] =>
  int(3)
  [4] =>
  int(1)
  [5] =>
  int(4)
  [6] =>
  int(4)
  [7] =>
  int(4)
  [8] =>
  int(3)
  [9] =>
  int(5)
  [10] =>
  int(5)
}
/home/florian0/test.php:13:
int(11)
/home/florian0/test.php:18:
array(4) {
  [0] =>
  int(5)
  [3] =>
  int(3)
  [4] =>
  int(1)
  [5] =>
  int(4)
}
/home/florian0/test.php:18:
int(4)

PS: Die Datenbank kann dir so eine Liste auch erstellen.
Code:
SELECT DISTINCT id 
FROM mytable 
ORDER BY rand() 
LIMIT 10
florian0 is offline  
Thanks
1 User
Old 04/03/2017, 21:23   #4
 
Royal*'s Avatar
 
elite*gold: 63
Join Date: Nov 2012
Posts: 2,123
Received Thanks: 500
Vielen Dank für eure Antworten, aber ich hatte das Problem bereits gelöst, da scheinbar die Variablen doch nicht in den Array gespeichert wurden. Aber trotzdem, vielen Dank für eure Mühen!
Wünsche euch einen schönen Abend.
Royal* is offline  
Old 04/03/2017, 21:42   #5


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by Royal* View Post
Guten Abend liebe Community,

derzeitig verzweifle ich an einem relativ simplen Thema. Ich möchte momentan ein Array mit 10 ID's befüllen, welche ich aus meiner Datenbank hole, dies mache ich damit:

PHP Code:
while( $counter <= 10 ) {
  
$blacklist['$counter'] = rand1$max_ids );
  
$counter += 1;

Soweit so gut, dies funktioniert auch einwandfrei. Nun kommen auch doppelte ID's vor, was auch vollkommen logisch ist. Jedoch habe ich nun das Problem, das wenn ich die doppelten ID's rauslöschen möchte, dies nicht so funktioniert wie ich möchte. Das rauslöschen versuche ich damit:

PHP Code:
$blacklist array_unique($blacklistSORT_NUMERIC); 
Aus irgendwelchen, für mich nicht nachvollziehbaren, gründen, kommt hierbei immer wenn ich ausgeben möchte wie viele ID's darin gespeichert werden, der Wert 1 heraus. Die Länge ermittle ich so:

PHP Code:
$length count($blacklist); 
Ich muss ehrlich gestehen, ich bin mit meiner Logik etwas am Ende. Auch wenn es eigentlich ziemlich simple wirkt, komme ich nicht mehr voran.

Also, nochmal alles zusammengefasst, was genau ich machen möchte:

Ich möchte ein Array mit 10 verschiedenen ID's befüllen, hierbei lese ich diese aus einer Datenbank heraus und speichere sie mittels einer Schleife in einem Array. Durch eine Funktion, bzw. eine Logik, möchte ich das die doppelten ID's aus dem Array gelöscht werden und neue ID's hinzugefügt werden, welche es noch nicht im Array gibt. Das soll solange ausgeführt werden, bis die 10 ID's erreicht sind.

Es würde mich wirklich sehr freuen, wenn mir jemand bei diesem kleinen Logik Problem behilflich sein könnte.

Einen schönen Abend noch und ein großes Dankeschön im voraus!
Wenn du eh jede ID nur einmal haben willst wieso hast du an dein SQL dann kein "GROUP BY" dran? (Performanter).

Alternativ kannst könntest du auch $array[$id] = xyz machen, somit würden die ids sich überschreiben. Bevorzuge jedoch GROUP BY oder array_unique.

P.s. wie florian auch schon sagte musst du bei $array["$variable"] doppel-Quotes nutzen, dann aber bitte mit geschweiften Klammern, besser ist jedoch wenn du die Quotes einfach weg lässt.

€: Wieso baust du mit einer While Schleife eine for Schleife (statt diese sofort zu nutzen) ?
Optimal wäre natürlich ein foreach über die Daten die du aus der Datenbank bekommst.
False is offline  
Thanks
1 User
Old 04/03/2017, 21:58   #6
 
Royal*'s Avatar
 
elite*gold: 63
Join Date: Nov 2012
Posts: 2,123
Received Thanks: 500
Quote:
Originally Posted by .ƒaℓsє. View Post
Wenn du eh jede ID nur einmal haben willst wieso hast du an dein SQL dann kein "GROUP BY" dran? (Performanter).

Alternativ kannst könntest du auch $array[$id] = xyz machen, somit würden die ids sich überschreiben. Bevorzuge jedoch GROUP BY oder array_unique.

P.s. wie florian auch schon sagte musst du bei $array["$variable"] doppel-Quotes nutzen, dann aber bitte mit geschweiften Klammern, besser ist jedoch wenn du die Quotes einfach weg lässt.

€: Wieso baust du mit einer While Schleife eine for Schleife (statt diese sofort zu nutzen) ?
Optimal wäre natürlich ein foreach über die Daten die du aus der Datenbank bekommst.
Das passiert wenn ich am verzweifeln bin, dann mache ich aus etwas simplen etwas kompliziertes oder unnötiges. Kleine Macke meinerseits.

Bei dem "GROUP BY" kann ich da auch die ID's anhand einer zufälligen Reihenfolge entnehmen?

Grüße
Royal* is offline  
Old 04/03/2017, 23:07   #7


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by Royal* View Post
Das passiert wenn ich am verzweifeln bin, dann mache ich aus etwas simplen etwas kompliziertes oder unnötiges. Kleine Macke meinerseits.

Bei dem "GROUP BY" kann ich da auch die ID's anhand einer zufälligen Reihenfolge entnehmen?

Grüße
"GROUP BY id" sorgt nur dafür das bei den Daten die ausgegeben werden die Ids unique sind und hat keinen Einfluss auf die Sortierung.
False is offline  
Reply


Similar Threads Similar Threads
2 Diminsonales Array erstellen
07/18/2015 - AutoIt - 6 Replies
Hallo Leute, kleines Problem beim erstellen eines 2d Arrays: Folgende aufgabe: $string ist ein lange kette von zeichen die in 2 teile aufgeteilt wird in $string1 und $string2
Ich suche einen 4story bypass der noch geht um einen Hack zu erstellen
08/27/2012 - 4Story - 15 Replies
Hallo e*pvp comunity, Ich Suche einen Bypass um für 4story meinen Hack fertig zu stellen, den ich dann auch hier Realisen werde. Für einen funktionfähigen Bypass gebe ich 200 e*gold, wenn ihr wollt. Mfg xcyancali
[SUCHE]Einen der mir einen Trailer erstellen kann
10/30/2011 - Metin2 Private Server - 2 Replies
Abend com. Also suche einen der mir einen Trailer erstellen kann, wenn er sehr gut wird bekommt er auch ne 10er psc ;) Am besten so schnell wie möglich melden ist sehr dringend. Mit freundlichen Grüßen
Gibt es einen service um einen dydns server zu erstellen ??
06/27/2011 - Metin2 - 1 Replies
hey ich wollte mal fragen ob es einen service gibt um einen Dydns server zu erstellen ?? und wenn nicht wie erstellt man einen und bringt ihn zum laufen :confused:
Hilfe wie Trainer erstellen mit Bytes of Array ?
10/23/2009 - General Coding - 8 Replies
moin zusammen ich brauche dringend hilfe!!! Ich spiele ein kleines Flash spiel, dieses möchte ich aber hacken indem ich die werte mit hilfe vonn cheat engine ändere. Die Werte ändern ihr adressen nach jedem spiel neustart daher lohnt es sich nicht so einen trainer zu erstellen. Ich habe auch schon versucht Pointer zu finden doch leider bin ich da auch nicht fündig geworden. Habe nur einen Array of Bytes, d.h. wenn ich jetzt nach AF 03 00 00 F7 0D 00 00 ?? 03 scanne , zeigt mir cheat...



All times are GMT +2. The time now is 20:08.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.