In mehrdimensionales array packen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • In mehrdimensionales array packen

    Hi

    Weiss jemand wie ich den folgenden Inhalt einer Datei in ein Array packe?
    Code:
    O
    H	asof
    D	1120077492
    H	n	pid	nick	score
    D	1	44574877	{1MEB}C|ElevenBravo	116
    D	2	44861370	[1MEB]C|Fark_Maniac	0
    D	3	44674321	[1MEB]C|GI-RONK	0
    D	4	44474937	[1MEB]C|Mallion	0
    D	5	44115748	[1MEB]C|Pvt.Coopdog	0
    D	6	44049699	[1MEB]C|Pvt.G22	0
    D	7	43976675	[1MEB]C|Pvt.GI-Ronk	0
    D	8	43976702	[1MEB]C|Pvt.JD7	0
    D	9	44164831	[1MEB]C|Pvt.Luke	0
    D	10	44110596	[1MEB]C|Pvt.Mallion	0
    D	11	44140360	[1MEB]C|Pvt.Tommy	0
    D	12	44737516	[1MEB]C|Pyro	0
    D	13	45003233	[1MEB]C|Spnk43	0
    D	14	44370271	[1MEB]C|Thor	910
    D	15	43967455	[2MEB]Col.FC000	1363
    D	16	44150623	[2MEB]CrashK	0
    D	17	44268395	{3MEB}COL.Kam[V]	1125
    D	18	44501989	[3MEB]CPT.WildWest	0
    D	19	44049986	[3MEB]CR|1Lt.Gnash	29
    D	20	44028989	[3MEB]CR|2lt.GooN	0
    $	595	$
    sollte dann etwa so aussehn:
    $array[1][H] = D
    $array[1][n] = 1
    $array[1][pid] = 44574877
    $array[1][nick] = {1MEB}C|ElevenBravo
    $array[1][score] = 116

    dann das ganze nochmal mit nächstem datensatz...

    danke & gruss

  • #2
    Was für ein Zeichen wird denn zur Trennung der einzelnen Datensätze innerhalb einer Zeile verwendet ?

    Gruss

    tobi

    Folgende Funktionen könnten helfen:

    nl2br()
    file_get_contents()
    explode()
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Nur Leerzeichen. Die Datei ist genau so wie oben gepostet.

      Kommentar


      • #4
        Nur Leerzeichen.
        ich glaube, es sind tabulatoren.

        Kommentar


        • #5
          Hmm möglich... und wie mach ich das am besten? die funktionen von jahlives haben mir nicht weitergeholfen.

          Kommentar


          • #6
            file zum Einlesen der Dateie (jede Zeile = ein Arrayeintrag)

            explode um die Zeilen zu zerlegen.
            Tipp: Ein Tabulator wird mittels "\t" angegeben
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              PHP-Code:
              <?php
              ini_set
              ("allow_url_fopen",true);
              $titleFile "http://bf2web.gamespy.com/ASP/searchforplayers.aspx?nick=ebc&where=a&sort=a";

              $rankData file($titleFile);

              $rankData explode("\t",$rankData);
              print_r($rankData);
              ?>
              Richtig so? Ausgabe:
              Array ( [0] => Array )

              Kommentar


              • #8
                Nein

                $rankdata ist doch schon ein Array, du musst jeden Eintrag in diesem Array exploden
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Aber das macht er doch schon hier?
                  PHP-Code:
                  $rankData explode("\t",$rankData); 

                  Kommentar


                  • #10
                    $rankdata ist da schon ein Array und entspricht daher nicht dem, was explode erwartet...
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Hm okay was hälst du davon:
                      PHP-Code:
                      <?php
                      ini_set
                      ("allow_url_fopen",true);
                      $titleFile "http://bf2web.gamespy.com/ASP/searchforplayers.aspx?nick=ebc&where=a&sort=a";

                      $rankData file($titleFile);

                      $rankData =  implode("\t",$rankData);

                      $rankData str_replace("\t"","$rankData);

                      $rankData explode(","$rankData);

                      print_r($rankData);
                      ?>
                      Array ( [0] => O [1] => H [2] => asof [3] => D [4] => 1120133186 [5] => H [6] => n [7] => pid [8] => nick [9] => score [10] => D [11] => 1 [12] => 44574877 [13] => {1MEB}C|ElevenBravo [14] => 116 [15] => D [16] => 2 [17] => 44861370 [18] => [1MEB]C|Fark_Maniac [19] => 0 [20] => D [21] => 3 [22] => 44674321 [23] => [1MEB]C|GI-RONK [24] => 0 [25] => D [26] => 4 [27] => 44474937 [28] => [1MEB]C|Mallion [29] => 0 [30] => D [31] => 5 [32] => 44115748 [33] => [1MEB]C|Pvt.Coopdog [34] => 0 [35] => D [36] => 6 [37] => 44049699 [38] => [1MEB]C|Pvt.G22 [39] => 0 [40] => D [41] => 7 [42] => 43976675 [43] => [1MEB]C|Pvt.GI-Ronk [44] => 0 [45] => D [46] => 8 [47] => 43976702 [48] => [1MEB]C|Pvt.JD7 [49] => 0 [50] => D [51] => 9 [52] => 44164831 [53] => [1MEB]C|Pvt.Luke [54] => 0 [55] => D [56] => 10 [57] => 44110596 [58] => [1MEB]C|Pvt.Mallion [59] => 0 [60] => D [61] => 11 [62] => 44140360 [63] => [1MEB]C|Pvt.Tommy [64] => 0 [65] => D [66] => 12 [67] => 44737516 [68] => [1MEB]C|Pyro [69] => 0 [70] => D [71] => 13 [72] => 45003233 [73] => [1MEB]C|Spnk43 [74] => 0 [75] => D [76] => 14 [77] => 44370271 [78] => [1MEB]C|Thor [79] => 952 [80] => D [81] => 15 [82] => 43967455 [83] => [2MEB]Col.FC000 [84] => 1363 [85] => D [86] => 16 [87] => 44150623 [88] => [2MEB]CrashK [89] => 0 [90] => D [91] => 17 [92] => 44268395 [93] => {3MEB}COL.Kam[V] [94] => 1234 [95] => D [96] => 18 [97] => 44501989 [98] => [3MEB]CPT.WildWest [99] => 0 [100] => D [101] => 19 [102] => 44049986 [103] => [3MEB]CR|1Lt.Gnash [104] => 29 [105] => D [106] => 20 [107] => 44028989 [108] => [3MEB]CR|2lt.GooN [109] => 0 [110] => $ [111] => 595 [112] => $ )
                      Ist zwar noch nicht dass was ich will aber schon mal nen Anfang. wie wandle ich das jetzt in ein mehrdimensionales array um? und kann ich die ersten daten entfernen? Also das "O H asof" usw..

                      Kommentar


                      • #12
                        Okay ich denke irgendwie so sollte das funktionieren:
                        PHP-Code:
                        <?php
                        ini_set
                        ("allow_url_fopen",true);
                        $titleFile "http://bf2web.gamespy.com/ASP/searchforplayers.aspx?nick=ebc&where=a&sort=a";

                        $rankData file($titleFile);

                        $rankData =  implode("\t",$rankData);

                        $rankData str_replace("\t"","$rankData);

                        $rankData explode(","$rankData);

                        unset(
                        $rankData[0]);
                        unset(
                        $rankData[1]);
                        unset(
                        $rankData[2]);
                        unset(
                        $rankData[3]);
                        unset(
                        $rankData[4]);
                        unset(
                        $rankData[5]);
                        unset(
                        $rankData[6]);
                        unset(
                        $rankData[7]);
                        unset(
                        $rankData[8]);
                        unset(
                        $rankData[9]);

                        for(
                        $i=1;$i<10;$i++) {
                        $rankDataFriendly[$i]['H'] = $rankData[$i];
                        $rankDataFriendly[$i]['n'] = $rankData[$i+1];
                        $rankDataFriendly[$i]['pid'] = $rankData[$i+1];
                        $rankDataFriendly[$i]['nick'] = $rankData[$i+1];
                        $rankDataFriendly[$i]['score'] = $rankData[$i+1];
                        }

                        print_r($rankDataFriendly);
                        ?>
                        Array ( [1] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [2] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [3] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [4] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [5] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [6] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [7] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [8] => Array ( [H] => [n] => [pid] => [nick] => [score] => ) [9] => Array ( [H] => [n] => D [pid] => D [nick] => D [score] => D ) )
                        irgendwas mache ich mit der $rankData falsch odeR? aber waS? das sollte doch funktionieren mit dem $i+1??

                        Kommentar


                        • #13
                          Original geschrieben von PHPbeginner
                          Okay ich denke irgendwie so sollte das funktionieren
                          nö, das ist immer noch ziemlicher murks.

                          PHP-Code:
                          for($i=1;$i<10;$i++) {
                          $rankDataFriendly[$i]['H'] = $rankData[$i];
                          $rankDataFriendly[$i]['n'] = $rankData[$i+1];
                          $rankDataFriendly[$i]['pid'] = $rankData[$i+1];
                          $rankDataFriendly[$i]['nick'] = $rankData[$i+1];
                          $rankDataFriendly[$i]['score'] = $rankData[$i+1];

                          überlege mal, auf welche indices von $rankData du damit im ersten schleifendurchlauf zugreifst, auf welche im zweiten, etc.

                          notfalls schreibe es dir mal auf, wenn dir so nicht klar ist, was da eigentlich passiert.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Ich hab ne Lösung gefunden:
                            PHP-Code:
                            <?php
                            ini_set
                            ("allow_url_fopen",true);
                            $titleFile "http://bf2web.gamespy.com/ASP/searchforplayers.aspx?nick=ebc&where=a&sort=a";

                            $rankData file($titleFile);

                            $rankData =  implode("\t",$rankData);

                            $rankData str_replace("\t"","$rankData);

                            $rankData explode(","$rankData);

                            unset(
                            $rankData[0]);
                            unset(
                            $rankData[1]);
                            unset(
                            $rankData[2]);
                            unset(
                            $rankData[3]);
                            unset(
                            $rankData[4]);
                            unset(
                            $rankData[5]);
                            unset(
                            $rankData[6]);
                            unset(
                            $rankData[7]);
                            unset(
                            $rankData[8]);
                            unset(
                            $rankData[9]);

                            $rankData array_values($rankData);

                            $k=0;
                            for(
                            $i=0;$i<40;$i++) {
                            $rankDataFriendly[$i]['country'] = $rankData[$k];
                            $rankDataFriendly[$i]['number'] = $rankData[$k+1];
                            $rankDataFriendly[$i]['pid'] = $rankData[$k+2];
                            $rankDataFriendly[$i]['nick'] = $rankData[$k+3];
                            $rankDataFriendly[$i]['score'] = $rankData[$k+4];
                            $k=$k+5;
                            }

                            print_r($rankDataFriendly);
                            ?>
                            Ist das gut so?

                            Kommentar

                            Lädt...
                            X