Antworten auf deine Fragen:
Neues Thema erstellen

Mehrdimensionales Array erstellen, sortieren und ausgeben

R

realgrafix

Guest

hallo zusammen,

ich hab folgendes problem. ich bekomme aus einem formular felder übermittelt.
die anzahl der felder ist variabel. im prinzip besteht es aus zwei spalten: 'nummer' und 'inhalt'.
nun möchte ich diese werte in ein array eintragen.
PHP:
if($vorhanden_felder > 0) {
        echo("vorhanden_felder: -".$vorhanden_felder."-");
        for($c = 0; $c < $vorhanden_felder; $c++) {
    
            $ff = $_POST['nummer'][$c];
            $gg  = $_POST['inhalt'][$c];
            
            $eingabefelder_array['nummer'][$c] = $ff;
            $eingabefelder_array['inhalt'][$c] = $gg;
          }
}
das klappt soweit auch. allerdings möchte ich bevor das formular nochmal ausgegeben wird, das array anhand des felds 'nummer' sortieren lassen wobei der zugehörige inhalt nicht verrutschen darf. und das bekomme ich nicht hin. habs schon mit 'sort' und 'multisort' versucht. aber irgendwie hab ich gerade nenn knoten im hirn.

PHP:
asort($eingabefelder_array['nummer'])
kann mir jemad helfen?

vielen dank!
 

sharkandy

Noch nicht viel geschrieben

AW: Mehrdimensionales Array erstellen, sortieren und ausgeben

Hallo realgrafix,

ich denke das Folgende ist das was du suchst, wenn es jede Nummer nur einmal gibt:

PHP:
if($vorhanden_felder > 0) {
        echo("vorhanden_felder: -".$vorhanden_felder."-");
        for($c = 0; $c < $vorhanden_felder; $c++) {
    
            $ff = $_POST['nummer'][$c];
            $gg  = $_POST['inhalt'][$c];
            
            $eingabefelder_array[$ff]=$gg;
          }
          ksort($eingabefelder_array);
}


Wenn die Nummern mehrfach vorkommen können müsste man den Weg über uksort wählen und eine eigene Vergleichsfunktion schreiben, die Arrays als Arrayelement vergleicht.

Gruß

Andreas
 

netbandit

Aktives Mitglied

AW: Mehrdimensionales Array erstellen, sortieren und ausgeben

Ich hätte da auch noch eine Möglichkeit; prüft auch ob das "Pärchen" komplett ist:

PHP:
<?PHP
$eingabefelder_array=array();
if(isset($_POST['nummer']) && is_array($_POST['nummer'])){
 foreach($_POST['nummer'] as $k => $v){
  if(isset($_POST['inhalt'][$k])){
   $eingabefelder_array[$v]=$_POST['inhalt'][$k];
  }
 }
}
ksort($eingabefelder_array);
echo implode('<br>', $eingabefelder_array); // Testausgabe
?>

Grüße
 
R

realgrafix

Guest

AW: Mehrdimensionales Array erstellen, sortieren und ausgeben

vielen dank für die lösungen!
werd sie gleich mal testen.
 
R

realgrafix

Guest

AW: Mehrdimensionales Array erstellen, sortieren und ausgeben

leider bekomm ich es mit euren lösungen nicht hin. die arrays machen mich noch fertig.

hab noch was anderes gefunden was ich zu zum laufen bekommen habe:

PHP:
    $eingabefelder_array = array();
    
    if($vorhanden_felder > 0) {
        echo("vorhanden_felder: -".$vorhanden_felder."-");
        for($c = 0; $c < $vorhanden_felder; $c++) {
        
            $ff = $_POST['nummer'][$c];
            $gg  = $_POST['inhalt'][$c];
            $eingabefelder_array[] = array('nummer' => $ff, 'inhalt' => $gg);
        }
        
        echo("<h3>");
        print_r ( $eingabefelder_array );
        echo("</h3>");

        foreach ($eingabefelder_array as $nr => $inhalt_x) {
            $nummer[$nr]  = $inhalt_x['nummer'];
            $inhalt[$nr] = $inhalt_x['inhalt'];
        }

        array_multisort($nummer, SORT_DESC, $eingabefelder_array);
        echo("<h3>");
        print_r ( $eingabefelder_array );
        echo("</h3>");

        
        for($a = 0; $a < $vorhanden_felder; $a++) {
            echo("<br><font color='red'>eingabefelder_array[".$a."]['nummer'][0] hat den inhalt: '".$eingabefelder_array[$a]['nummer'][0]."'</font><br>");
        }

    }
funktioniert fast 100%ig.

in den 'print_r ( $eingabefelder_array )' ausgaben stimmt alles. wenn ich nun einen zweistelligen wert in '$_POST['nummer'][$c]' habe, wird mir innerhalb der for-schleife jedoch nur die erste stelle angezeigt - im 'print_r' stimmt alles.

ich find nicht den fehler!

jemad ne idee?


STOP - hab den fehler. so gehts:

PHP:
 for($a = 0; $a < $vorhanden_felder; $a++) {
            echo("<br><font  color='red'>eingabefelder_array[".$a."]['nummer'] hat den inhalt:  '".$eingabefelder_array[$a]['nummer']."'</font><br>");
        }
 
Zuletzt bearbeitet von einem Moderator:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben