php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-12-2008, 11:34
andyB
 Registrierter Benutzer
Links : Onlinestatus : andyB ist offline
Registriert seit: Apr 2005
Ort: Hamburg, Germany
Beiträge: 27
andyB ist zur Zeit noch ein unbeschriebenes Blatt
Question nächst kleineren array-key wählen

guten morgen liebe profis!

in einem meiner scripte habe ich unter anderem folgendes array:
PHP-Code:
$kfr = array (
    
=> 1,
    
=> 2,
    
=> 3,
    
10 => 4,
    
12 => 5,
    
15 => 6,
    
20 => 7
); 
ich bekomme jetzt von einem formular daten eines user übergeben, die dann berechnet werden und einen numerischen wert ergeben.
dieser wert kann z.b. 3 sein.
mein problem ist jetzt, das ich einen zugehörigen wert aus dem oberen array auslesen muss, und zwar den nächst kleineren zu der berechneten zahl. in diesem beispiel also key 2 = value 1.
(die berechnete zahl bezieht sich auf den array-key, nicht auf den array-wert)

wie stelle ich das am besten an?

vielen dank für eure hilfe.
grüße andyB.
Mit Zitat antworten
  #2 (permalink)  
Alt 18-12-2008, 12:12
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

erst mal sortieren mit ksort() mit foreach() durchgehen und prüfen und key() mit prev() liefert das vorherige element.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 18-12-2008, 13:38
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Ist der Wert denn fortlaufend? Dann kannst du auch mit array_search($kfr[$item]-1) arbeiten
Mit Zitat antworten
  #4 (permalink)  
Alt 18-12-2008, 13:53
andyB
 Registrierter Benutzer
Links : Onlinestatus : andyB ist offline
Registriert seit: Apr 2005
Ort: Hamburg, Germany
Beiträge: 27
andyB ist zur Zeit noch ein unbeschriebenes Blatt
Standard

momentan ist der wert noch fortlaufend.
aber es kann durchaus sein, das sich das in zukunft ändert.

zur verständlichung:
die array-key sind jahre, die vals sind monate.
das heißt, wenn etwas eine bestimmte anzahl an jahren [key] gedauert hat, hat es dann eine frist von [val] monaten.

zu array_search() : das problem ist ja, das es nicht 2 oder 5 oder 8 jahre sind, sondern durchaus auch 3, 4, 6 oder 7 (usw.) ... sein kann. dann bin ich ja zwischen zwei array-keys.
wenn z.b. 3 jahre erreicht sind, sind die 5 (nächster array-schlüssel) ja noch nicht voll. also soll das programm den wert mit dem schlüssel 2 nehmen.
Mit Zitat antworten
  #5 (permalink)  
Alt 18-12-2008, 14:11
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Dann kannst du trotzdem auf MelloPie`s Lösung aufsetzen. Das Array nach den Schlüsseln sortieren und in einer foreach-Schleife durchgehen und immer den Schlüssel merken. Stößt du irgendwann auf einen Schlüssel > dein Jahr, ist der zuletzt gemerkte Schlüssel dein Ergebnis.
Mit Zitat antworten
  #6 (permalink)  
Alt 18-12-2008, 14:36
andyB
 Registrierter Benutzer
Links : Onlinestatus : andyB ist offline
Registriert seit: Apr 2005
Ort: Hamburg, Germany
Beiträge: 27
andyB ist zur Zeit noch ein unbeschriebenes Blatt
Lightbulb

habs!
vielen dank!

meine (unsere) lösung:
PHP-Code:
error_reporting(E_ALL);

$kfr = array (
    
=> 1,
    
=> 2,
    
=> 3,
    
10 => 4,
    
12 => 5,
    
15 => 6,
    
20 => 7
);

$jahr 7// Jahr zu Testzwecken
$ausgabe null// Variable zur Ausgabe 
ksort($kfr);

foreach ( 
$kfr as $key => $val ) {
    if ( 
$jahr >= $key ) {
        
$ausgabe $key;
    }
    else {
        break;
    }
}

echo 
$ausgabe
so tuts!

grüße andyB.

Geändert von andyB (20-12-2008 um 01:33 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 18-12-2008, 14:48
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Je nachdem, wie viele Einträge dein Array hat, macht es Sinn, schon direkt auszusteigen, wenn du die Ausgabe gefunden hast, d.h. ein:
PHP-Code:
else {
    break;

macht da Sinn.
Wenn die Werte übrigens schon sortiert ankommen, kannst du dir das ksort aus Performancegründen sparen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:51 Uhr.