mehrdimensionales array ausgeben (php)

  • #1
X

xeen

Bekanntes Mitglied
Themenersteller
Dabei seit
28.11.2001
Beiträge
283
Reaktionspunkte
0
also: ich habe in einer Datei verschiedene nutzerdaten gespeichert.
Die lese ich ganz normal per file(); aus, (Der ausgelesene Wert wird nochma mit explode(); verhackstückt und dann) speichere ich den Wert in einem Array.
$alladminstosort[$aktuelleradmin[0 ]]
$alladminstosort: hier werden die Werte später nach dem Alphabet sortiert, $aktuelleradmin[0 ] ist der admin der gerade ausgelesen wurde. Später soll das ganze dann nicht so ausgegeben werden BZA sonder ABZ deswegen sortiere ich den array mithilfe von ksort sodass $alladminstosort die admins in einer richtigen Reihenfolge haben sollte.
Es folgt nun nur noch ein reset() des Arrays und dann will ich es eigentlich ausgeben. Aber wenn ich array_values() nehme sagt der mir nur array :-\

Hier erstma der gesmate code:
Code:
      echo <i>Admins</i>;
      $alladmins=file(admins.dat);
      for ($i = 0; $i < sizeof($alladmins); $i++) {
          $aktuelleradmin=explode(%,removenl($alladmins[$i]));
          $alladminstosort[$aktuelleradmin[0]]=<li>$aktuelleradmin[0] ($aktuelleradmin[2])</li>;
      }
       ksort($alladminstosort);
       reset($alladminstosort);
       echo array_values($alladminstosort);

Ich glaube da keienr verstanden hat was ich will erklär ichs nochma: Im Prinzip habe ich ein Array mit verschiedenen werten. Dieses werte ich aus und möchte dann den verarbeiteten Inhalt (also das was später ausgegeben wird) anhand von den bei der verarbeitung ausgelesenen admins sortieren. Vorher funktionierte das ja nur mit [0 ] [1] usw., nun möchte ich aber nach der Verarbeitung das nicht in der Zahlenreihenfolge ausgegeben wird, sondern eben nach den Admins ($aktuelleradmin[0 ]) sortiert wird.

Hat jemand eine Idee?

PS: ich weiß das es ziehmlich kompliziert ist was ich hier geschrieben habe also fragt wenn Fragen da sind :>
xeen
 
  • #2
Also ich habs geschafft mein Problem selbst zu lösen.
Und zwar so: ein array: enthält den namen des Admins ($aktuelleradmin[0 ]) und die nr. wie sie in der datei vorkommt also 0 1 2 usw.
Das 2. array enthält ganz normal die Informationen zum übergeben.
nun wird das 1. array nach dem inhalt sortiert.
in einer zweiten forschleife werden die nrs wie sie in der datei vorkommen ausgelesen (wurden ja vorher mit einem prozent zeichen getrennt, welches nicht in den admins vorkommt). Da das array ja sortiert war wird nun in unterschiedlicher reihenfolge das 2. array ausgegeben und zwar nach dme abc...
Also hier sit der code, falls ihn einer braucht :)

Code:
           echo <i>Admins</i>;
      $alladmins=file(admins.dat);
      for ($i = 0; $i < sizeof($alladmins); $i++) {
        $aktuelleradmin=explode(%,removenl($alladmins[$i]));
        $alladminsarray1[$i]=$aktuelleradmin[0]%$i;
        $alladminsarray2[$i]=<li><a href=\$self&action=userverwaltung&uvaction=delask&leveltodel=Admin&nrtodel=$i\>$aktuelleradmin[0] ($aktuelleradmin[2])</a></li>;
      }
       sort($alladminsarray1);
       reset($alladminsarray1);

       for($i=0; $i<sizeof($alladminsarray1); ++$i)
        {
          $getnrtoload=explode(%,$alladminsarray1[$i]);
          $echonr=$getnrtoload[1];
          echo $alladminsarray2[$echonr];
        }

xeen
 
  • #3
Hi

Tipp: Arrays kannst du dir zum debuggen prima mit print_r($array) ausgeben lassen.

Gruß, Michael
 
  • #4
hey cool... wusste doch das es da so eine funktion gibt habse aber nciht gefunden!
geil ;P
 
  • #5
Ihr könnt mir bestimmt helfen.

Ich habe ebenfalls erst file() benutzt um die datei auszulesen und danach die werte mit explode() noch einmal auseinandergestückelt.

Bloß wie schreibe ich den Code, wenn ich jetzt ein bestimmtes array aus dem 2. Feld ausgeben möchte?
Habe schon diese Varianten ausprobiert. Sie funktionieren aber nicht.

$array1[0][2]
$array1[0]array2[2]
 
  • #6
Kannst du mal ein print_r($array1); machen und das Ergebnis hier Posten ???

gruss conny

edit: Auszug würde reichen wenn es zu groß ist ;) ;)
 
  • #7
ich glaube eher, dass der fehler bei der bedienung des explode() liegt
hier ein mal ein auszug:

<?
$tribe_info = file(tribe.txt);
$tribe_daten = explode(,,$tribe_info);
echo ($tribe_info[0][1]),<br>;
echo ($tribe_info[4][1]),<br>;
?>
 
  • #8
Gut möglich ;D

Aber um nicht lange zu Rätseln, solltest du mal einen Auszug deiner Text-Datei posten, dass würde die Sache sehr erleichtern ;) ;)

Außerdem kannst du dich mal hier ein bissle einlesen:




BTW: wenn du deine Text-Datei mit dem Befehl file einliest, ist sie schon in einem Array, was soll dann noch der explode ???

gruss conny
 
  • #9
in explode sollen die einzelnen Zeileninhalte (die durch , getrennt sind) noch einmal aufgesplittet werden
 
  • #10
Davon hab ich immer noch keine Ahnung wie:

a) dein Array

oder

b) die Text-Datei aussieht

gruss conny
 
  • #11
hier erstmal ein Auszug der Textdatei (die komplette datei ist sehr lang, deswegen nur ein Auszug der ersten Zeilen)
Jede Zeile enthält 6 Werte, die ich voneinander getrennt haben möchte um später eine Spielersuche durchzuführen.

Code:
3,exception,0,1,942,9075
19842,ResilderA,68,2,7731,3547
42583,Lord_Shagnar,0,1,134,13322
46756,Jean-Philippe,207,2,10137,2844
8679,crazy-coiun,91,1,1407,8014
56155,si7ver,88,1,6330,4070
42086,junkie_xl,5195,3,7721,3550
74113,Liluminay,2665,1,1943,7138
50648,Vernichtikus,1305,1,5116,4646
12296,Breaker,0,1,45,14463
45588,Oi-Skin,79,2,8852,3208
57945,Hippo,0,1,229,12482
51578,CrashTestDummy,1,1,7461,3645
45431,LiL_BianD,81,3,19240,1547
42726,usi111,88,1,1763,7386
33467,Trick,524,3,8873,3205
46216,Cueue,254,1,850,9345
47998,eat+the+apple,3320,1,323,11809
10127,Barir+Maethorenon,67,1,4893,4766
46781,Jebus,10,2,12108,2446
48420,Mannheimer,21,2,9324,3051
46925,%21c3%5E42,81,6,34182,710
25389,wgl-caschde,40,3,26183,1066

Der Code sieht ohne die suche volgendermaßen aus

Code:
<?
    $tribe_info = file(tribe.txt);
    $tribe_daten = explode(,,$tribe_info);
    echo ($tribe_info[0][1]),<br>;
    echo ($tribe_info[4][1]),<br>;
?>

Hierbei sollte das Prgramm die Werte
exception und crazy-coiun ausgeben
 
  • #12
Siehste mal, mit der richtigen Info geht das RuckZuck ;) ;)

Code:
<?php

$tribe_info = file(tribe.txt);
$i = 0;
while($i < count($tribe_info)) {
	$tribe_info[$i] = explode(,,$tribe_info[$i]);
	++$i;
}
echo ($tribe_info[0][1]),<br>;
echo ($tribe_info[4][1]),<br>;

?>

gruss conny
 
  • #13
vielen dank

endlich klappt es

hast vllt icq oder so?

könnte nämlich sein, dass ich in der nächsten zeit noch mehr fragen habe ;)
 
  • #14
cultsibi schrieb:
.....
könnte nämlich sein, dass ich in der nächsten zeit noch mehr fragen habe ;)

Support nur über das Forum.
Evtl. haben ja andere ein ähnliches Problem und können so von den Antworten lernen.

gruss conny
 
Thema:

mehrdimensionales array ausgeben (php)

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben