Wie Dimensionen eines mehrdimensionalen Arrays löschen ?

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

  • Wie Dimensionen eines mehrdimensionalen Arrays löschen ?

    Hi,

    wie kann ich alle Dimensionen eines Arrays bis auf die Erste löschen
    oder mir nur eine Dimension (die Erste) in ein neues Array zurückgeben
    lassen.
    Die Tiefe der Dim. ist unbekannt und variabel.

    danke.

    mfg
    micha

  • #2
    sei so lieb und mach n beispiel array.
    weil die "dimensionalität" wird ja durch verschachtlung mehrerer arrays erreicht. so frage ich mich, was du als erste dimension des arrays
    PHP-Code:
    $arr = array(
        
    => array ( ),
        
    => array ( )

    erwarten würdest.

    Kommentar


    • #3
      Sorry, aber ich arbeite noch nicht so lange mit PHP insbesondere
      mit Arrays.
      Ich erhalte aus einem explode ein Array und möchte NUR den ersten Teil der Daten des Strings weiterarbeiten ( ein array_unique anwenden ). Dies funktioniert aber nur, wenn das Array "eindimensional"
      ist und keine weiteren Daten in mehreren Dimensionen stehen.
      Entweder ich wandele das mehrdim. in ein eindim. (nur die erste Spalte
      und natürlich der key) werden in ein neues array übernommen oder
      ich lösche alle weiteren dimensionen.
      Gibt es villeicht noch eine andere Möglichkeit ein Array auf dem explode zu
      erhalten wo nur der erste "getrennte" String enthalten ist ?
      In Explode kann man ja ein Limit setzen. Jedoch bekomme ich trotzdem
      immer 2 "Spalten" in meinem Array.

      bsp:

      GRAFIK#TEST#BLA
      RAM#HALLO#BLABLA

      Ich will ein Array mit GRAFIK#RAM aus dem oben genannte Grund.

      mfg
      Zuletzt geändert von mdellwing; 07.12.2004, 23:15.

      Kommentar


      • #4
        geht's um eine textdatei?
        dann lauf doch einfach mal mittels foreach das array $file (wo du alle zeilen hast) durch und setze:
        PHP-Code:
        $neuesArrayMitErstenElementenJederZeile[] = $zeie[0]; 
        für jede zeile.

        Kommentar


        • #5
          hier mal der code

          PHP-Code:
          $result mysql_query("SELECT DISTINCT MATCHCODE FROM ARTIKEL where MATCHCODE > ''"); 
              while(
          $row mysql_fetch_row($result)) { 
                  
          $array explode("-",$row[0]); 
                  
          $array2[] = $array[0]; // For-Schleife gelöscht
                  
          }
          $array2 array_unique($array2); 
                  for(
          $x=0;$x<count($array2);$x++){
                      echo 
          "<option value='$array2[0]'>$array2[0]</option>";
              } 
          1. DB-Abfrage
          2. while-schleife für jedes db-objekt
          3. Explode in array
          4. "Deine Funktion" um nur die erste Dim. in ein neues Array zu bekommen
          5. array_unique auf dieses neue Array ausführen
          6. Ausgabe des "bereinigten" Array

          geht leider so nicht aber ich denke du verstehst jetzt was ich will.

          danke.
          mfg
          micha
          Zuletzt geändert von mdellwing; 08.12.2004, 07:37.

          Kommentar


          • #6
            die for schleife um das $array2[] = $array[0]; ist unnötig, denke ich.

            Kommentar


            • #7
              Auch wenn ich die For-Schleife weglasse, es funktioniert leider
              nicht. Hat sonst noch jemand einen Vorschlag, mein oben
              beschriebenes Problem zu lösen ?

              mfg
              micha

              Kommentar


              • #8
                GRAFIK#BLA#BLUBB und RAM#HALLO#WELT stehen so in der datenbanktabelle?

                dann schau dir auf http://dev.mysql.com/doc/mysql/en/String_functions.html mal die Funktionen LEFT und LOCATE oder einfach nur SUBSTRING_INDEX an
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  dann schau dir das ganz genau an:
                  PHP-Code:
                  for($x=0;$x<count($array2);$x++){
                              echo 
                  "<option value='$array2[0]'>$array2[0]</option>";
                      } 

                  Kommentar


                  • #10
                    Original geschrieben von mdellwing
                    [skipped] es funktioniert leider nicht [skipped]
                    verdammt genaue fehlermeldung.
                    was funktioniert nicht? was passiert bzw. was passiert nicht? was ist in $array2 drin? werden die datensätze richtig ausgelesen?`

                    asp2php hat dich auf eine sehr hirnrissige stelle hingewiesen. du bekommst einen sonderpreis, wenn du mir sagst, was die schleife macht.
                    Zuletzt geändert von penizillin; 08.12.2004, 14:34.

                    Kommentar


                    • #11
                      ja, ja
                      die schleife entstand irgendwann, als es schon wieder hell wurde !
                      Ich werde das Problem nächste Woche wieder angehen.

                      mfg
                      micha


                      Nachtrag:
                      SUBSTRING_INDEX() macht genau dass, was ich will :-) HURRA
                      Zuletzt geändert von mdellwing; 09.12.2004, 09:28.

                      Kommentar

                      Lädt...
                      X