php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2005, 15:43  
Gast
 
Beiträge: n/a
Standard Sortierung mehrerer Arrays

hi.

mein problem hat sich geändert -> siehe letzten beitrag von mir)

1. kann ich die unten angegeben function nur einmal ausführen -> sprich nicht für alle saisonzeiten.
2. die zusammenführung von den ermittelten werten -> und den daraus günstigsten preis zu ermitteln.

wäre schön, wenn jemand von euch einen ansatz bzw. eine lösung hat.


PHP-Code:
<?
        
while("werte in tabelle 1") {
        
// aus tabelle 1
        
$saison[$i// beinhaltet z.B. 'A', 'B', usw.
        
}
        while(
"werte in tabelle 2") {
        
// aus tabelle 2
        
$preis_personen[$i// beinhaltet z.B. '20', '30', usw.
          
$preis_a[$i]        // beinhaltet z.B. '199.00', '299.00', usw. (das '_a' bezogen dann auf saison aus tabelle 1)
          
$preis_b[$i]        // usw.
          
$preis_c[$i]
          
$preis_d[$i]
          
$preis_z[$i]
          
$preis_zs[$i]

        
// jetzt soll die jeweils aktive saison nach preis sortiert werden (z.B. 'saison_preis_d')
        
if($saison=="D") {
            function 
cmp($a$b) {
                if(
$a == $b) return 0;
                return (
$a $b) ? -1;
            }
            
usort($preis_dcmp);
                while(list(
$key,$value) = each($preis_d)) {
                    echo 
"$key: $value\n";
            }
        }
        if(
$saison=="C") { // und das selbe mit saison 'C' usw...
            // etc...
        
}
        
        
// wenn der jeweils günstigste preis der saison ermittelt ist, dann vergleiche die jeweiligen günstigsten saisonpreise und ermittle den gesamt günstigsten preis aus allen saisons.

?>
grüsse,
frobi
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 06.06.2005, 16:43  
Matthias959
Gast
 
Beiträge: n/a
Standard

http://de2.php.net/manual/de/function.sort.php
//EDIT:
Das hier könnte auch noch interrestant sein für dich
http://de2.php.net/manual/de/functio...-multisort.php
 
Alt 06.06.2005, 16:46  
Gast
 
Beiträge: n/a
Standard

danke, Matthias959

-> aber diese function kann ich irgendwie nur einmal nutzen.
-> weißt du vielleicht woran es liegt?
-> kann ich sie vielleicht global deklarieren?
 
Alt 06.06.2005, 16:51  
Matthias959
Gast
 
Beiträge: n/a
Standard

Was soll das heißen du kannst die funktion nur ein mal benutzen?
Was passiert denn wenn du sie ein zweites Mal aufrufst?
Setze am besten mal ganz open in dein Script
PHP-Code:
<?php
Error_reporting
(E_ALL)
?>
Kriegst du irgendwie eine Fehlermeldung?
 
Alt 06.06.2005, 16:55  
Gast
 
Beiträge: n/a
Standard

ja, wenn ich sie zum 2ten mal aufrufe gibt er mir:

PHP-Code:
Fatal errorCannot redeclare cmp() (previously declared in C:apachexamppxampphtdocsakzente_projektexecmoduleseinzelpreismodul.php:50in C:apachexamppxampphtdocsprojektexecmoduleseinzelpreismodul.php on line 50 
 
Alt 06.06.2005, 17:17  
Matthias959
Gast
 
Beiträge: n/a
Standard

Hast du multisort oder sort verwendet?
Wenn du sort() verwendet hast, probier mal array_multisort() aus.
 
Alt 06.06.2005, 17:27  
Gast
 
Beiträge: n/a
Standard

hi, ich benutze:

PHP-Code:
<?php
         
function cmp($a$b) {
            if(
$a == $b) return 0;
            return (
$a $b) ? -1;
         }
         
usort($preis_dcmp);
            while(list(
$key,$value) = each($preis_d)) {
               echo 
"$key: $value\n";
         } 
?>
zum sortieren der einzelnen saisonzeiten.

aber, ich muß, bevor ich mit multisort, die jeweiligen arrays sortiere, ersteinmal rausfiltern, welche saisonzeiten nicht zutreffen. (sonst nimm die nicht aktiven saisonzeiten preise ja mit hinein)
 
Alt 06.06.2005, 17:36  
Erfahrener Benutzer
 
Registriert seit: 27.10.2003
Beiträge: 530
Thice
Standard

Du deklarierst die Funktion cmp() innerhalb einer Schleife. Dadurch wird sie bei jedem Durchlauf neudeklariert und das geht natürlich nicht.

Setz die Deklaration
PHP-Code:
<?php
function cmp($a$b) {
if(
$a == $b) return 0;
  return (
$a $b) ? -1;

?>
direkt an den Anfang deiner Datei (auf jeden Fall außerhalb der while()-Schleifen!!) dann müsste das auch mehrmals laufen.

MfG
Andy
__________________
kintzebros.de | KintzeBros Home Entertainment
2061. Nach dem Frieden | kurzfilm
Paula | spielfilm
Thice ist offline  
Alt 08.06.2005, 12:57  
Gast
 
Beiträge: n/a
Standard

stimmt, habe daran gar nicht gedacht, die function aus der while schleife zu nehmen.
bin aber damit auch nicht weiter gekommen.

habe jetzt einen anderen weg gewählt, bin aber wieder am stocken (problem steht beim letzten kommentar):

PHP-Code:
<?php

// hole mir die saison vorher aus einer anderen tabelle

    
while ( $p_row mysql_fetch_array($p_check_result) ) {
          
$preis_a $p_row["preise_a"];      
          
$preis_b $p_row"preise_b"];      
          
$preis_c $p_row["preise_c"];      
          
$preis_d $p_row["preise_d"];      
          
$preis_z $p_row["preise_z"];      
          
$preis_zs $p_row["preise_zs"];

// selektion -> welche saison ausgewertet werden soll
          
if($saison=="ZS" OR $saison=="ZSD" OR $saison=="ZSC" OR $saison=="ZSB" OR $saison=="ZSA") { 
                
$result[$i]['preis_zs'] = $preis_zs;
            }
          if(
$saison=="Z" OR $saison=="ZD" OR $saison=="ZC" OR $saison=="ZB" OR $saison=="ZA") {
                
$result[$i]['preis_z'] = $preis_z;
            }
          if(
$saison=="D") {
                
$result[$i]['preis_d'] = $preis_d;
            }
          if(
$saison=="C") {
                
$result[$i]['preis_c'] = $preis_c;
            }
          if(
$saison=="B") {
                
$result[$i]['preis_b'] = $preis_b;
            }
          if(
$saison=="A") {
                
$result[$i]['preis_a'] = $preis_a;
            }
          if(
$saison=="ABCD") {
                
$result[$i]['preis_d'] = $preis_d;
            }

            } 
mysql_free_result($p_check_result); // schliessen der while-Schleife der Preisabfrage

array_multisort($resultSORT_ASC$result);

for(
$i=0;$i<count($result);$i++) {
    
    
$gesamt[$i] = array_shift($result[$i]);
    
// hier gibt er mir jetzt nur die preise, die auch der saison entsprechen vom kleinsten bis zum größten richtig an.
// Mein problem jetzt, ist es, nur den niedrigsten aller anzuzeigen (da weiß ich keinen rat)
         
echo "---".$gesamt[$i]."---";
    
}
    

echo 
"

"
;

?>
vielleicht hat ja einer einen tip für mich

grüsse,
frobi
 
Alt 08.06.2005, 13:19  
Erfahrener Benutzer
 
Registriert seit: 27.10.2003
Beiträge: 530
Thice
Standard

PHP-Code:
<?php
print($gesamt[0]);
?>
MfG
Andy
__________________
kintzebros.de | KintzeBros Home Entertainment
2061. Nach dem Frieden | kurzfilm
Paula | spielfilm
Thice ist offline  
 


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
Mehrere Arrays summieren buggybugga PHP-Fortgeschrittene 8 22.07.2008 11:51
If-Abfrage mit mehrdimensionalen Arrays fehlerhaft aherzog PHP Tipps 2008 19 23.06.2008 08:16
sortierung brian johnson Datenbanken 6 05.05.2008 19:53
Variable Variablen zusammen mit Arrays Kenshin PHP Tipps 2008 2 20.04.2008 15:30
Sortierung eines Arrays nach ANZAHL Werte simsalabim PHP Tipps 2008 5 06.11.2007 13:44
Sortierung eines Arrays vollkommenegal PHP-Fortgeschrittene 5 14.07.2007 21:12
Mehrere Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
Arrays sortieren, Bezeichnung, Preis Ticos PHP Tipps 2006 4 07.09.2006 19:37
Arrays kreuzen PHP Tipps 2006 13 08.03.2006 11:36
[Erledigt] 2 Arrays miteinander vergleichen PHP Tipps 2007 3 17.12.2005 16:54
Objektorientierter Zugriff auf Multidimensionale Arrays PHP-Fortgeschrittene 31 26.11.2005 21:46
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Erkennung von Arrays in Strings PHP-Fortgeschrittene 15 07.12.2004 13:00
2 arrays in abhängigkeit ??? PHP Tipps 2004 2 11.08.2004 21:19
Werte eines Arrays in eine MySQL schreiben PHP Tipps 2004 2 28.06.2004 13:32

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\cannot redeclare\ usort, php billigsten preis array, cannot redeclare cmp_bbekpreis() (previously declared in, mysql_free_result usort, cannot redeclare usort, \cannot redeclare cmp\ usort, code saisonpreise ermitteln, usort vergleich funktion cannot redeclare, php while(list($key, $val) letzten durchlauf bestimmen, fatal error: cannot redeclare usort, php cannot redeclare cmp(), cannot redeclare multisort()

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:17 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.