php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.10.2006, 10:38  
Erfahrener Benutzer
 
Registriert seit: 20.06.2003
Beiträge: 233
andrew22
Standard array problem

hi,

ich habe da ein array Problem : und zwar fülle ich ein array mit werten mit monatswerten.

ein jahr hat ja immer 12 monate .

es gibt aber einträge zu werten wo nicht alle 12 monate gefüllt sind also z.B. der eintrag Test -> hat nur werte für Jan,Feb, Oct ... jetzt sollen die restlichen monate aber auch noch mit rein z.B. mit dem wert null oder nem bindestrich oder so.

thx
andrew22 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.10.2006, 10:44  
Erfahrener Benutzer
 
Registriert seit: 07.11.2003
Beiträge: 526
Promaetheus
Standard

PHP-Code:
$monate = array();
for(
$i 1$i <= 12$i++) {
  
$monate[$i] = $deinwert// wenn $deinwert leer ist wird beim index kein value gespeichert

kannst natürlich zusätzlich noch mit if() einen gewünschten wert statt nichts eintragen lassen.
__________________
mfg Alexander Haim
Promaetheus ist offline  
Alt 18.10.2006, 12:15  
Erfahrener Benutzer
 
Registriert seit: 20.06.2003
Beiträge: 233
andrew22
Standard

ich glaube mein Problem ist doch etwas ernster :

test Object (

[resultData] => test Object ( [@attributes] => Array ( [icao] => KHLC [iata] => HLC )

[TemperaturAvg] =>
test Object ( [Jan] => 0 [Feb] => 2 [Mar] => 6 [Apr] => 12 [May] => 18 [Jun] => 23 [Jul] => 27 [Aug] => 25 [Sep] => 21 [Oct] => 13 [Nov] => 5 [Dec] => 1 )
[TemperaturMin] =>
test Object ( [Jan] => -4 [Feb] => -2 [Mar] => 1 [Apr] => 5 [May] => 11 [Jun] => 16 [Jul] => 19 [Aug] => 18 [Sep] => 13 [Oct] => 6 [Nov] => 0 [Dec] => -5 )
[TemperaturMax] =>
test Object ( [Jan] => 8 [Feb] => 10 [Mar] => 14 [Apr] => 21 [May] => 26 [Jun] => 31 [Jul] => 35 [Aug] => 33 [Sep] => 29 [Oct] => 22 [Nov] => 13 [Dec] => 8 )
[Niederschlag] =>
test Object ( [Jan] => 3 [Feb] => 4 [Mar] => 6 [Apr] => 6 [May] => 8 [Jun] => 8 [Jul] => 9 [Aug] => 8 [Sep] => 6 [Oct] => 5 [Nov] => 5 [Dec] => 2 )
[Wind] =>
test Object ( [Jan] => 4 [Feb] => 5 [Mar] => 5 [Apr] => 6 [May] => 5 [Jun] => 5 [Jul] => 5 [Aug] => 4 [Sep] => 5 [Oct] => 5 [Nov] => 5 [Dec] => 4 )
[Sonnenstunden] =>
testObject ( [0] => )
[Regentage] =>
test Object ( [0] => )
[TemperaturWasser] =>
test Object ( [0] => )
[Schneehoehe] =>
test Object ( [Jan] => 8 [Feb] => 8 [Mar] => 5 [Apr] => 4 [Oct] => 4 [Nov] => 4 [Dec] => 4 )


) )

wie man sieht fehlen bei Schneehoehe einige Monate. es sollen die fehlenden Monate noch gesetzt werden mit einem null wert oder nem Bindestrich oder so das ist erstmal egal.

irgendwie platzt mein kopf gleich irgendwie klappt dat allet nicht
andrew22 ist offline  
Alt 18.10.2006, 12:33  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Warum steht da jetzt immer Object statt Array?
Und Array-Index ist nicht die Nummer, sondern der Name des Monats.
Lauter Details, die Du ruhig mal kundtun darfst....

Wenn es wirklich ein assoziatives Array sein soll, dann probier mal sowas hier:

PHP-Code:
<?php
$MonthNames
=array('Jan''Feb', ... 'Dec');
foreach (
$MonthNames as $Month)
{
   if (empty(
$DeinArray[$Month])
      
$DeinArray[$Month] = 0;
}
?>
Bei einem Objekt wird sich bestimmt auch was ähnliches machen lassen.

Wäre nicht ein normales numerisch indiziertes Array deutlich besser, weil man da zur Not auch mal mit einer for-Schleife durch alle Monate durchrutschen kann, statt sich immer erst die Namen zu basteln?
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 18.10.2006, 12:34  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

vielleicht wäre eine umstrukturierung sinnvoll....
PHP-Code:
<?php

class monat {
    var 
$sonnenstunden null;
    var 
$temperaturAvg null;
    var 
$temperaturMax null;
    var 
$temperaturMin null;
    
    function 
monat() {
    
    }
}

$aMonate["januar"] = new monat();
$aMonate["februar"] = new monat();
// ....
?>
Andreas ist offline  
Alt 18.10.2006, 12:51  
Erfahrener Benutzer
 
Registriert seit: 20.06.2003
Beiträge: 233
andrew22
Standard

es handelt sich um ein SimpleXMLElement Object.

und das ist natürlich kein array

hmmmm ich verzweifle
andrew22 ist offline  
Alt 18.10.2006, 13:19  
Erfahrener Benutzer
 
Registriert seit: 20.06.2003
Beiträge: 233
andrew22
Standard

also ich habs jetzt fast

das Problem ist nur das er die neuen Elemente an das Ende des Array packt somit stimmt der Ablauf nicht also z.B. :

Array ( [Jan] => 8 [Feb] => 8 [Mar] => 5 [Apr] => 4 [Oct] => 4 [Nov] => 4 [Dec] => 4 [May] => 0 [Jun] => 0 [Jul] => 0 [Aug] => 0 [Sep] => 0 )

wie kann ich das noch richtig machen ?

mit array_pop oder array_push wahrscheinlich nicht da diese ins letzte bzw. erste element liefern ...

thx
andrew22 ist offline  
Alt 18.10.2006, 14:58  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

woher soll das script denn wissen, in welcher reihenfolge die monate kommen? vielleicht lässt sich da mit date() was machen...
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 18.10.2006, 15:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Deine 3. Buchstaben-Abkürzung für die Monate ist denkbar ungeeignet:
Du kannst nicht sortieren wie du es ja jetzt vorhast und zur Ausgabe für den User taugen sie eigentlich auch nicht.

Verbesser lieber den Verursacher: deine Objekt- bzw. XML-Struktur.
Zergling-new ist offline  
Alt 18.10.2006, 15:27  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von Zergling
Verbesser lieber den Verursacher: deine Objekt- bzw. XML-Struktur.
Prinzipell richtig,
Zitat:
Zitat von Zergling
Du kannst nicht sortieren wie du es ja jetzt vorhast und zur Ausgabe für den User taugen sie eigentlich auch nicht.
aber siehe Parallelthread, die Sortierung ist nicht so aufwendig.
Wahrscheinlich muß er irgendwelche vorgegebenen Daten auswerten und hat da nicht so großen Einfluß auf die Struktur.
nikosch 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
Array Problem dsmcg PHP Tipps 2006 3 07.12.2006 14:34
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Array Problem accomm PHP Tipps 2006 1 04.04.2006 16:35
Mysql / Array Problem marcels PHP Tipps 2006 10 23.03.2006 18:30
Problem mit array in Datenbank pixelcut PHP-Fortgeschrittene 3 28.02.2006 18:20
array - Problem skaterboy PHP-Fortgeschrittene 4 26.02.2006 12:36
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Problem mir einem Array PHP Tipps 2005-2 5 11.08.2005 11:33
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Problem mit Checkboxvalues in Array PHP Tipps 2004 1 17.09.2004 15:00
Array Problem andrew22 PHP Tipps 2004 9 17.09.2004 10:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php date, buchstabenabkürzung alt, attributes php foreach mit bindestrich problem

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