![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.481
|
Kommt mir so vor, als hätte ich das Problem schon mal gehabt, aber ich kann gerade keinen entsprechenden Thread finden. Demnach weiß ich gerade auch nicht mehr, ob das, was ich machen ist möglich ist oder ob ich es da schon gelöst habe bzw. es dort gelöst wurde. Nunja. --- Problemstellung: Ich habe ein Array PHP-Code: Jetzt möchte ich einen Link zum "nächsten Bild" anbringen. Ist das Bild selbst schon das letzte, also existiert kein weiteres Bild mehr, so soll der Link natürlich nicht angezeigt werden. Heißt, dass zwei Informationen benötige:
Schön und gut. Generell ja kein Problem, aber wie komme ich an die Daten? Es gibt ja irgendwie keine direkte Möglichkeit herauszufinden, welche Position "das Bild" im Array hat, oder? Ich kann das über eine Schleife und array_values() machen, aber nunja, so ein direkter Weg wäre schon toll. Es fehlt halt irgendwie so etwas wie getKeyByValue($value); Falls jemand eine Möglichkeit kennt .. danke. Grüße, Ben. Ok, Nachtrag. Ich habe die einzelnen Keys jetzt einfach mit der eindeutigen pictureID benannt. Das bringt mich auf jeden Fall mal einen Schritt weiter (das mit array_values() war irgendwie eine Sackgasse!). Irgendwie würde sich hier wohl die Verwendung von next()/prev() anbieten, aber leider klappt das nicht so, wie ich möchte. Ich habe folgenden Code: PHP-Code: Habe ich den Zeiger des Arrays jetzt nicht verschoben und auf '12' gesetzt? :-/ Danke! Geändert von Ben (21.06.2007 um 12:37 Uhr). |
| | |
| | Nach oben #2 | |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
| Zitat:
Wenn du ausser PictureID keine weiteren Elemente hast: PHP-Code:
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html | |
| | |
| | Nach oben #4 | |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
| Zitat:
PHP-Code:
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html Geändert von Ben (21.06.2007 um 12:56 Uhr). | |
| | |
| | Nach oben #6 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.481
|
Bin nun den Weg über das Array gegangen. Ist nun so realisiert, dass das Array nicht wirklich viele Einträge hat, so dass das auch fix durchlaufen werden sollte, vor allem weil es ja nur bis zum gesuchten Wert läuft. Also quasi Lösung durch die Hintertür. |
| | |
| | Nach oben #7 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 241
|
Du könntest das Array mittelst usort nach der ID sortieren und dann eine Binäre Suche anwenden um die Position herauszufinden. Oder habe ich das jetzt falsch verstanden? EDIT: Vergiss es, mein Vorschlag wird viel langsamer sein, als deine Lösung.
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL Geändert von Artemis (22.06.2007 um 19:17 Uhr). |
| | |
| | Nach oben #8 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.481
| Ich habe gerade auch gedacht .... Also die Problemstellug hat sich insofern erledigt, da im Array nun nur maximal 16 Einträge sein werden. Demnach ist die Schleife sicherlich fix. Aber die binäre Suche kannte ich nicht. Danke. |
| | |
| | Nach oben #9 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Die binäre Suche ist eigentlich ganz einfach und fix für größere (vorsortierte) Datenmengen. Man nehme ein beliebiges Element und schaue ob das gesuchte kleiner oder größer ist. Dann nimmt man entsprechend die übrigbleibenden und guckt wierder ein Element raus und schaut ob es kleiner oder größer ist. Wenn man nun immer in der Mitte sucht, bleibt bei jedem Suchvorgang die Hälfte übrig. Man hat also bei 2 hoch x Elementen maximal x Vergleichsvorgänge. oder so ähnlich (müsste überlegen, Mathe ist etwas her) Lohnt sich erst bei vorsortierten Datenmengen, da das Sortieren selbst meist aufwendiger ist, als das Array einfach so einmal komplett zu durchsuchen.
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #10 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 523
|
bei der binären suche wird die zu durchsuchende, sortierte menge immer halbiert (durch den vergleich größer/kleiner). dadurch braucht man nur log n vergleichsvorgänge.
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Array - hinzufügen doppelter key | DasMööp | PHP-Programmierung | 9 | 28.04.2008 19:25 |
| [C/PHP -> mcrypt] Zu kurzer Key | WarrenFaith | Sonstige Programmiersprachen | 19 | 03.04.2007 11:03 |
| Suche Hilfe: Angebot und Nachfrage berechnen | ljungi | Plauderecke | 6 | 17.12.2006 22:10 |
| Schlüssel in verschachteltem Array suchen und Wert zurückgeben | Ben | PHP-Programmierung | 8 | 19.10.2006 18:54 |
| Array in Bezug auf ein anderes sortieren... | code5 | PHP-Programmierung | 2 | 15.05.2006 15:56 |