SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #31  
Alt 06.09.2007, 01:56:46
Benutzerbild von maiskolben
maiskolben maiskolben ist offline
Junior Member
 
Registriert seit: Aug 2006
Ort: Bremen
Alter: 43
Beiträge: 247
AW: Wie Array aufteilen?

Also Du meinst , wenn $zeile[1] das normale schon formatierte Datum ist, und der Schlüssel der Timestamp... So schreibt er aber über, mit multisort...

Eine Idee ist noch, das aktuelle Datum mit dem Timestamp der $zeile[1] zu vergleichen, und den dazugehörigen Schlüssel der am nächsten dran ist heraus zu suchen und als erstes und absteigend in das Array zu übergeben!

Boah! Shiddy!

Ich wünsche Dir erstmal eine gute Nacht!
Und vielen Dank!

Bis zur nächsten Frage, wa? ^^

Tschüss!
__________________
Worte haben Macht - nichts...

Geändert von maiskolben (06.09.2007 um 02:00:55 Uhr)
Mit Zitat antworten
  #32  
Alt 06.09.2007, 02:01:56
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Wie Array aufteilen?

Zitat:
Zitat von maiskolben Beitrag anzeigen
Also Du meinst , wenn $zeile[1] das normale schon formatierte Datum ist, und der Schlüssel der Timestamp... So schreibt er aber über, mit multisort...
Meine ich nicht. Ich verstehe den Satz oder die zwei Sätze nämlich nicht.
Mit Zitat antworten
  #33  
Alt 06.09.2007, 02:06:38
Benutzerbild von maiskolben
maiskolben maiskolben ist offline
Junior Member
 
Registriert seit: Aug 2006
Ort: Bremen
Alter: 43
Beiträge: 247
AW: Wie Array aufteilen?

Na so:

PHP-Code:
       if ($zeilen[0] === '001'
        {
            
$dat explode('/'$zeilen[1]);
          
$zeilen[1] = mktime(0,0,0$dat[1], $dat[0], $dat[2]);
          
$datensaetze[$zeilen[1]] = $zeilen;
        } 
HTML-Code:
Array
{
   [9837457345] => Array {
                                       [0] => "001"
                                       [1] => "9837457345"
                                       [2] => "text"
                                       [3] => "text"
                                       usw...
                                       }
}
Und den Schlüssel mit dem aktuellen Datum zu vergleichen...
__________________
Worte haben Macht - nichts...
Mit Zitat antworten
  #34  
Alt 06.09.2007, 02:20:56
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Wie Array aufteilen?

Sorry, verstehe ich trotzdem nicht.
Mit Zitat antworten
  #35  
Alt 06.09.2007, 11:15:41
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: Wie Array aufteilen?

Mannomann... ich hätte nicht gedacht, dass sich das hier noch so in die Länge zieht ;-)

Ich glaube, inzwischen sind sich alle einig, dass der krsort() Ansatz nur mit Datum, ohne Uhrzeit nicht funktionieren kann.

Insofern musst Du auf jeden Fall den Timestamp aus dem Array-Index herausnehmen. Sonst funktioniert bei dir keiner der beiden Wege (Raketenmann, defabricator), weil (hast du ja schon gemerkt) Elemente überschrieben werden.

Ich weiß nicht wie du defabricators Skript ausprobiert hast, bei den Übernahmen von mir, hast du immer eine Mischung aus zwei Wegen verwendet.

In dem einen Beitrag wird nur $ts_sort sortiert, in einem anderen nur die Hälfte an array_multisort() übergeben...
...oder fast korrekt übernommen (multisort Variante), aber mit Timestamp im Array-Index.

Wenn das mit array_multisort() funktionieren soll,
- verwende nur leere Klammern beim Hinzufügen von Array-Elementen (und füge $elemente Arrays hinzu),
- laß auf jeden Fall das Erzeugen der Elemente der beiden Arrays hintereinander stehen (du brauchst beide und die Indizies der Elemente müssen gleich sein, auf keinen Fall zu früh an einem der beiden Arrays herumsortieren)
- und sie müssen beide an die Funktion array_multisort übergeben werden (das "SORT_DESC"-Flag muß $ts_sort zugeordnet sein).

Sonst funktioniert es nicht.

Ich würde das Beispiel wirklich exakt so lassen wie es ist und oben drüber das Dateisammeln einfügen und unten drunter die Schleife, die das Template füllt (hattet ihr ja schon)

Vielleicht machst du einfach mal eine neue Datei auf, in der du die verschiedenen Quelltextteile Stück für Stück einfügst.
So ist es wahrscheinlich übersichtlicher, als Zeilenweise im bestehenden Skript auszutauschen - dabei übersieht man (ich zumindest) viel zuviel...


Solange alle deine Zeilen aus den verschiedene Quellen in einem Array landen und die erwarteten Daten überall an der gleichen Stelle stehen, ist - egal welche Sortierfunktion - der Ursprung der Daten völlig egal.


PS:
MIt meinem Test-Array funktionieren ebenfalls sowohl array_multisort() und auch defabricators usort() Lösung gut, sie schliessen mit identischem Ergebnis ab

Insofern denke ich wirklich, dass es an der Übernahme des Quelltextes scheitert. Aber war ja Ende auch schon ein bißchen später gestern... ;-) Raketenmann war da längst im Reich der Träume angekommen.

Geändert von Raketenmann (06.09.2007 um 11:18:09 Uhr)
Mit Zitat antworten
  #36  
Alt 06.09.2007, 19:06:55
Benutzerbild von maiskolben
maiskolben maiskolben ist offline
Junior Member
 
Registriert seit: Aug 2006
Ort: Bremen
Alter: 43
Beiträge: 247
AW: Wie Array aufteilen?

Hallo ihr beiden! Gut geschlafen?

Ich bin zufrieden, da die neuen Beiträge nun als erstes angezeigt werden!
Die letzte Antwort von Dir Raketenmann war entscheidend...

Ich bedanke mich recht herzlich für die Geduld, und den großen Lerneffekt!
Damit ist dieser Thread fertig und alle meine Fragen beantwortet!

Hier nochmal das finale Script...

PHP-Code:
    // Pfade bestimmen (NUR bei _einem_ Index, auf dem Beitraege
    // aus mehreren Kategorien angezeigt werden sollen!)

    
$pfadx            =    array();
    
$pfadx['n']        =     $_SERVER['DOCUMENT_ROOT'] . "/pfad/beitraege/";
    
$pfadx['f']        =     $_SERVER['DOCUMENT_ROOT'] . "/pfad/beitraege/";
    
$pfadx['c']     =     $_SERVER['DOCUMENT_ROOT'] . "/pfad/beitraege/";
    
$pfadx['r']     =     $_SERVER['DOCUMENT_ROOT'] . "/pfad/beitraege/";
    
$pfadx['p']     =     $_SERVER['DOCUMENT_ROOT'] . "/pfad/beitraege/";

$pfade $pfadx;

// Einlesen                
foreach($pfade as $pfad// Pfade als Schleife durchlaufen
{
    
$fp fopen($pfad "index.txt""r");
        while(!
feof($fp))  
        {
           
$voll trim(fgets($fp));
           if (
strlen($voll))    
           
$zeilen[] = $voll;                           
        }
    
fclose($fp);      


// Sortieren
$z_elem = array(); 
for(
$z=0;$z<count($zeilen);$z++)
{
    
$tarr explode("|",$zeilen[$z]);
    if(
$tarr[0] == '001')
    {
        
$z_elem[] = $tarr;
    }
}

array_multisort($z_elemSORT_DESC);

// Ausgabe
foreach($z_elem as $elem)
{
    
$element $elem;
    
    
// Template einbinden und Variablen ausgeben! 
    
include ($_SERVER['DOCUMENT_ROOT']) . ('/template.html');

Ich schreibe jetzt direkt beim erstellen der neuen Beiträge den Unix-Timestamp in die Textzeile. Er setzt sich zusammen aus dem Datum und der genauen Uhrzeit, um möglichst keine gleichen Timestamps zu haben, da sich das betreffende Array sonst überschreiben würde...

Funktionen zum lösen des Problems sind:
time()
mktime()
foreach()
for()
array_multisort()
while()

BEANTWORTET
__________________
Worte haben Macht - nichts...

Geändert von maiskolben (06.09.2007 um 19:09:06 Uhr)
Mit Zitat antworten
  #37  
Alt 06.09.2007, 22:00:27
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Wie Array aufteilen?

Zitat:
Zitat von maiskolben
Ich schreibe jetzt direkt beim erstellen der neuen Beiträge den Unix-Timestamp in die Textzeile. Er setzt sich zusammen aus dem Datum und der genauen Uhrzeit, um möglichst keine gleichen Timestamps zu haben, da sich das betreffende Array sonst überschreiben würde...
"Möglichst" ist nicht gut genau.
Aber da der Zeitstempel nicht als Index verwendet wird, überschreibt sich da eh nichts.
Es gibt kein Problem mit $arr = array('a', 'a');
nur mit $arr['a']=1; $arr[1]=2
Und das kommt in der jetzigen Fassung nicht vor.

Für nur ein einziges Feld braucht man kein array_multisort(). sort()/rsort() tun es genauso.

Allerdings sehen die Arrayelement nun so aus:
001|1189108622|..
001|1189308624|..
Und es sind Zeichenketten. array_multisort() vergleicht also textuell. Nehmen wir mal einen Eintrag vom 8.9.2001 12:00:00
001|999943200|..
bei einem textuellen Vergleich landet das nach
001|1189308624|..
obwohl es zeitlich davor liegt.

Geändert von defabricator (06.09.2007 um 22:01:01 Uhr)
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrdimensionales Array sortieren MrLongbaugh PHP Grundlagen 10 06.03.2008 12:02:47
array probleme :) stefan600 PHP Grundlagen 1 14.05.2007 10:18:48
Array sortierten sinfo PHP für Fortgeschrittene und Experten 4 26.11.2006 15:26:57
array im array SolidBody PHP Grundlagen 3 20.07.2006 13:38:41
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 13:36:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:22:54 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt