Ich habe ein assoziatives Array in PHP. Die Schlüssel sind ganze Zahlen. Wie finde ich den nächsten Schlüssel für eine ganzzahlige Eingabe?Wie finde ich den am besten passenden Schlüssel in einem PHP-Array?
2
A
Antwort
1
eine einfache, aber Brute-Force-Methode:
$distance = 1000000; // initialize distance as "far away"
foreach ($array as $idx => $value)
if (abs ($idx - $target_index) < $distance)
{
$distance = abs ($idx - $target_index);
$best_idx = $idx;
}
0
Wenn der Array-Schlüssel in Ordnung ist, können Sie einen effizienteren Algorithmus verwenden (die auf oder keinen spürbaren Unterschied machen abhängig, was das ist für und wie groß die Arrays sind):
$arr = [2 => 'a', 4 => 'b', 7 => 'c'];
$input = 5;
if (isset($arr[$input])) {
return $input;
}
foreach ($arr as $key => $value) {
if ($key > $input) {
if (prev($arr) === FALSE) {
// If the input is smaller than the first key
return $key;
}
$prevKey = key($arr);
if (abs($key - $input) < abs($prevKey - $input)) {
return $key;
} else {
return $prevKey;
}
}
Verwandte Themen
- 1. Java HashMap finden am besten passenden Schlüssel
- 2. Wie finde ich am besten in r?
- 3. Wie finde ich einen Hash-Schlüssel mit einem passenden Wert
- 4. Wie finde ich den ersten "Schlüssel"? In einem Wörterbuch?
- 5. Was ist der beste Weg, den am besten passenden Typ zu einem bestehenden Typ zu finden?
- 6. Wie organisiere ich meine Datenbank am besten?
- 7. Wie finde ich das Ausgangsverzeichnis des Benutzers in Java am besten?
- 8. Kann ich zwei Sequenzen zusammen mit einem passenden Schlüssel paaren?
- 9. Wie verwende ich am besten GPS-Daten?
- 10. Wo finde ich Ressourcen zu den besten Codierungssicherheitspraktiken in SharePoint?
- 11. Wie stelle ich MACOSX_DEPLOYMENT_TARGET am besten ein?
- 12. Wie am besten einzurichten core.clj
- 13. Wie zeichne skinable "Knöpfe" am besten in einem Videospiel?
- 14. Wie überprüfe ich am besten, ob ein Cookie existiert?
- 15. Jquery finden am nächsten passenden Element
- 16. Was erklärt am besten den CAPropertyAnimation animationWithKeyPath: Parameter?
- 17. Wie geht das am besten in Android?
- 18. Wie komme ich am besten zu den neuesten Entwicklungen in Java?
- 19. Wie teile ich am besten ein einbettbares Formular in VB6?
- 20. Wie konvertiere ich einen DbType am besten in System.Type?
- 21. Wie verwende ich am besten das Schlüsselwort const in C?
- 22. Wie kann ich am besten herausfinden, wie Django intern funktioniert?
- 23. Wie am besten Eingabe in Java Webapp
- 24. Wie liest man GetResponseStream() am besten?
- 25. Wie finde ich die Sondenfolge der Schlüssel?
- 26. Wie kann ich am besten Übergänge in einer Transaktionstabelle extrahieren?
- 27. Wie zeichne ich am besten in der Konsole?
- 28. Wie verwende ich UML 2.0 in Visio 2003 am besten?
- 29. Wie man am besten Link zu einem API-Controller
- 30. Wie sorge ich am besten für die Speicherung historischer Daten?
Was passiert, wenn es zwei nächstgelegene Schlüssel gibt. – PeeHaa
habe nicht darüber nachgedacht. muss das herausfinden. – Hans