php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2012, 23:53  
Neuer Benutzer
 
Registriert seit: 04.01.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
linda befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] array multisort oder doch was anderes?

hallo,
ich möchte bei einem mehrdimensionalen array die server id mit dem kleinsten prozentwert auslesen.


PHP-Code:
$server = array(
    
"1" => array(
        
"server_ips" => array(
                            
"127.0.1.1" => "0",
                            
"127.0.1.2" => "0",
                            
"127.0.1.3" => "0"
                        
), 
        
"max_conversion" => "100",
        
"percent" => "28"
    
),
    
    
"2" => array(
        
"server_ips" => array(
                            
"127.0.2.1" => "0",
                            
"127.0.2.2" => "0",
                            
"127.0.2.3" => "0"
                        
), 
        
"max_conversion" => "80",
        
"percent" => "68"
    
),
    
    
"3" => array(
        
"server_ips" => array(
                            
"127.0.3.1" => "0",
                            
"127.0.3.2" => "0",
                            
"127.0.3.3" => "0"
                        
), 
        
"max_conversion" => "130",
        
"percent" => "2.562"
    
)
); 

wenn ich dieses jetzt mit array_multisort neu, gemäß prozentwerte sortiere, wird allerdings der index neu geschrieben und somit werden meine server ids "zerstört":

PHP-Code:
foreach($server as $key => $val) {
    
$percent[$key] = $val["percent"];
}
array_multisort($percentSORT_ASC$server); 
gibt es noch eine andere php-function, womit ich herausfinden kann, welche server-id den kleinsten prozent wert hat?

liebe grüße,
linda
linda ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.01.2012, 23:56  
Neuer Benutzer
 
Registriert seit: 25.09.2010
Beiträge: 21
PHP-Kenntnisse:
Fortgeschritten
SlimShady95 befindet sich auf einem aufstrebenden Ast
Standard

Füg doch einfach die Server-ID als Element in deinem Array hinzu?

PHP-Code:
"1" => array( 
        
"server_ips" => array( 
                            
"127.0.1.1" => "0"
                            
"127.0.1.2" => "0"
                            
"127.0.1.3" => "0" 
                        
),  
        
"max_conversion" => "100"
        
"percent" => "28",
        
"server_id" => "1"
    
),

// ... 
Hoffe das hilft, war mein erster Gedanke bei deinem Problem.

MfG Manuel
SlimShady95 ist offline   Mit Zitat antworten
Alt 05.01.2012, 00:42  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

PHP-Code:
$start microtime(true);
for (
$i 0$i 100000$i++) {
    
$keyMin false;
    foreach (
$server as $key => $val) {
        
$keyMin $keyMin === false || $server[$keyMin]['percent'] > $val['percent'] ? $key $keyMin;
    }
    
$i++;
}
$end microtime(true);

$start2 microtime(true);
for (
$i 0$i 100000$i++) {
    foreach(
$server as $key => $val) {
        
$percent[$key] = $val['percent'];
    }
    
$min array_keys($percentmin($percent));
    
$i++;
}
$end2 microtime(true);

$start3 microtime(true);
for (
$i 0$i 100000$i++) {
    foreach(
$server as $key => $val) {
        
$percent[$key] = $val['percent'];
    }
    
$min array_search(min($percent), $percent);
    
$i++;
}
$end3 microtime(true); 
Code:
Laufzeit1: 0.090571880340576 Sekunden!
Laufzeit2: 0.23156714439392 Sekunden!
Laufzeit2: 0.14284515380859 Sekunden!
Drei Varianten kann ich anbieten. Die Auswahl bleibt dir überlassen.
Trainmaster ist offline   Mit Zitat antworten
Alt 05.01.2012, 03:54  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von SlimShady95 Beitrag anzeigen
Füg doch einfach die Server-ID als Element in deinem Array hinzu?

PHP-Code:
"1" => array( 
        
"server_ips" => array( 
                            
"127.0.1.1" => "0"
                            
"127.0.1.2" => "0"
                            
"127.0.1.3" => "0" 
                        
),  
        
"max_conversion" => "100"
        
"percent" => "28",
        
"server_id" => "1"
    
),

// ... 
+1

stammen die Daten aus einer XML ?
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 05.01.2012, 10:57  
Neuer Benutzer
 
Registriert seit: 04.01.2012
Beiträge: 2
PHP-Kenntnisse:
Anfänger
linda befindet sich auf einem aufstrebenden Ast
Standard

manchmal sieht man den wald voller bäume nicht mehr!

dieses ist perfekt für mich:
PHP-Code:
    $keyMin false;
    foreach (
$server as $key => $val) {
        
$keyMin $keyMin === false || $server[$keyMin]['percent'] > $val['percent'] ? $key $keyMin;
    } 
vielen dank an alle für die hilfe. insbesondere ein dankeschön an trainmaster.

liebe grüße,
linda
linda ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rekursive Liste erstellen sponge93 PHP Einsteiger 3 20.12.2011 09:21
[Erledigt] PDF im Browser Streamen PiXeL1337 PHP Einsteiger 22 08.09.2011 16:24
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
Feed in Datenbank eintragen (Formate: json, php serialized, xml) high_five Datenbanken 5 17.06.2010 03:04
Ein (Teil)Array anhand von level und depth zurückgeben. greatcthulhu Scriptbörse 4 16.04.2010 10:45
PHPLot von der Datenbank zum mehrdimensionalen Array mannimammut PHP Tipps 2009 1 15.12.2009 10:40
[Erledigt] array sortieren PHP Tipps 2004 17 13.05.2009 10:44
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Text aus Array wird nach dem Speichern anderes dargestellt tinchen PHP Tipps 2006 9 01.10.2006 23:40
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
array multisort, php array multisort

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum