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
  #1  
Alt 21.02.2005, 22:26:29
silberlocke silberlocke ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 142
natcasesort zerstört Array

Hi!

Habe gerade ein Problem, und zwar macht mir natcasesort mein Array kaputt.

PHP-Code:
   $temp=natcasesort($temp1); 
Aus
$temp1: Array ( [0] => 5C-Schüler_3 [1] => 5C-Schüler_2 )

wird
$temp: 1

Weiß da jemand bescheid?

Gruß, Silberlocke
Mit Zitat antworten
  #2  
Alt 21.02.2005, 22:28:31
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: natcasesort zerstört Array

[func]natcasesort()[/func] hat keinen Rückgabewert:
PHP-Code:
<?php
    $temp 
$temp1;
    
natcasesort($temp);
?>
Mit Zitat antworten
  #3  
Alt 22.02.2005, 01:48:06
silberlocke silberlocke ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 142
AW: natcasesort zerstört Array

Dankeschön! Das ist es wohl gewesen.
Mit Zitat antworten
  #4  
Alt 22.02.2005, 02:45:08
silberlocke silberlocke ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 142
AW: natcasesort zerstört Array

Leider doch nicht.
Wenn ich das sortierte Array, (das sind jetzt nur Probewerte, also nicht wundern)

Array ( [4] => 2#2;ghkkljkll;zojl;; [1] => 3#3;srzth;fgh;fg; [3] => 4#4;ghkkljkll;zojl;; [2] => 5#5;gkkl;zo;fg; [0] => 7#7;sdfg;dfgfd;dfg; )

(Etwas stutzig macht mich, daß an Position 0 nicht [0], sondern die alte Position [4] steht)

ausgeben will,
PHP-Code:
   $aufst_neu_sort=$aufst_neu_temp;
   
natcasesort($aufst_neu_sort);

   
$x=0;
   while (
$x<count($aufst_neu_sort))
   {
   echo (
$aufst_neu_sort[$x],"#"),"<br>";
   
$x++;
   } 
sehe ich wieder die alte Reihenfolge

7#7;sdfg;dfgfd;dfg;
3#3;srzth;fgh;fg;
5#5;gkkl;zo;fg;
4#4;ghkkljkll;zojl;;
2#2;ghkkljkll;zojl;;
Mit Zitat antworten
  #5  
Alt 22.02.2005, 08:21:14
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Damit hast Du Dich aber schön selber verarscht! :)

natcasesort() sortiert nach den Werten der Felder im Array und behält die Indizes bei. Du siehst es ja, die 7#... steht ganz hinten und hat weiterhin den Index 0.

Liest Du nun das Array mit einer Zählschleife aus, dann richtet er sich nicht nach der Sortierung, sondern an dem aktuellen Wert dieser Schleife. Also von 0 bis 4, darum sieht's aus wie immer.

Du kannst die Schleife auch so auslesen:
PHP-Code:
foreach ($aufst_neu_sort as $key => $value) {
    echo 
"$key: $value<br>n";

Man glaube ich auch den Index neu aufbauen lassen, ist aber fraglich ob Du das willst.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #6  
Alt 22.02.2005, 11:37:10
silberlocke silberlocke ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 142
AW: natcasesort zerstört Array

Einen neuen Index brauch ich wohl nicht. Ich muß das Array, so wie es ist, wieder in eine Datei schreiben. Geht das so mit dem foreach-Bereich?

PHP-Code:
   $fp=fopen($pfad_aufst_txt,w);
   if (
$fp)
   {
   
flock($fp,2);
   
$nl chr(13) . chr(10);

   foreach (
$aufst_neu_sort as $key => $value)
   {
   
fputs($fptrim($value));   // oder ist trim() hier überflüssig?
   


   if (
$x+!= count($aufst_neu))  //nach letzter Zeile keinen Zeilenumbruch
   
{
   
fputs($fp,$nl);
   }

   
flock($fp,3);
   
fclose($fp);
   } 
Ist das bei sort() eigentlich auch so, oder wird da der Index gleich neu aufgebaut? Ich meine daß ich damit nicht solche Probleme hatte, aber jetzt brauch ich die menschlich Sortierreihenfolge.
Mit Zitat antworten
  #7  
Alt 22.02.2005, 11:46:11
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: natcasesort zerstört Array

wenn du sicher sein kannst dass keine überflüssigen leerzeichen am anfang und ende des strings sind, kannst du es ohne trim() machen.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #8  
Alt 22.02.2005, 11:53:35
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Wenn die Datei nicht Tausende von Zeilen lang ist, dann kannst Du es auch einfach so machen:
PHP-Code:
$txt=join("rn"$aufst_neu_sort);
$txt=trim($txt);
$fh=fopen('datei.txt''w');
    
fwrite($fh$txt);
fclose($fh); 
Um Deine Frage zu beantworten: Ja, so ginge es mit dem foreach()dingens.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 22.02.2005, 12:19:15
silberlocke silberlocke ist offline
Anfänger
 
Registriert seit: Jun 2004
Beiträge: 142
AW: natcasesort zerstört Array

Es klappt!
Ich hab das jetzt mal so gemacht. Die Zeile mit dem Zeilenumbruch war noch ein Überbleibsel aus dem vorherigen Versuch mit der while-Schleife.


PHP-Code:

   
...
   ...
   ...
   
$nl chr(13) . chr(10);
   
$x=0;

   foreach (
$aufst_neu as $key => $value)
   {
   
fputs($fptrim($value));
   
$x++;
   if (
$x != count($aufst_neu))
   {
   
fputs($fp$nl);
   }
   }

   
flock($fp,3);
   
fclose($fp);
   ... 
Aber wie das jetzt mir sort() aussieht, würd mich ja auch interessieren. Alter oder neuer Index?.

@c4: Da wird aber nach letzter Zeile umgebrochen, oder?
Mit Zitat antworten
  #10  
Alt 22.02.2005, 12:32:40
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Zitat von silberlocke
@c4: Da wird aber nach letzter Zeile umgebrochen, oder?
Nein, dafür ist ja das trim() da. Das entfernt schließlich alles Whitespaces (Leerzeichen, Tabulator und Zeilenumbrüche) am Anfang und Ende des Strings.
Umgebrochen wird nur zwischen den Zeilen.
__________________
sic!
--> http://dbCF.de/
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
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 13:36:58
Wie sortiere ich ein mehrdimensionales Array sinfo PHP für Fortgeschrittene und Experten 1 09.07.2003 11:28:38
array funktionen tbp PHP für Fortgeschrittene und Experten 1 30.06.2003 17:00:30
Assoziatives Array beliebig erweitern? compi PHP für Fortgeschrittene und Experten 1 29.11.2002 09:52:23
String in Array umwandeln.... DeMaephis PHP für Fortgeschrittene und Experten 7 19.05.2002 19:34:28


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


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


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