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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

ModuleStudio ansehen ModuleStudio

Modellgetriebene Entwicklung von Erweiterungen für das Open Source Framework Zikula.

15.01.2019 Guite | Kategorie: PHP ENTWICKLUNGSUMGEBUNG
FAQ Script PHP ansehen FAQ Script PHP

FAQ Script PHP is a simple knowledgebase script and you could use it as a Frequently Asked Question section on your website. It is written in PHP and MySQL.

14.01.2019 nevenov | Kategorie: PHP/ FAQ
Admidio Mitgliederverwaltung

Admidio ist eine kostenlose Online-Mitgliederverwaltung, die für Vereine, Gruppen und Organisationen optimiert ist. Sie besteht neben der Mitgliederverwaltung aus einer Vielzahl an Modulen (Foto-, Download-, Terminverwaltung), die in eine neue oder besteh

08.01.2019 webmaster52@ | Kategorie: PHP/ Groupware
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:52 Uhr.