• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

2-Dimensionales Array

Yo_Low

Neues Mitglied
Nabend,

hab ein Problem und weiß nicht so recht weiter. Möglicherweise könnt ihr mir ja helfen, bei dem kläglichen Versuch ein 2-Dimensionales Array zu erstellen ..

Ich hab ein Formular bei dem ich die Menge eines Artikels abfrage, die bestellt werden soll. Die Artikel werden über eine Datenbank aufgelistet.

PHP:
while(list($ArtikelID, $Artikel, $Preis, $Lieferant) = mysql_fetch_row($ds_artikel))
                    {
                        echo "<input type=\"hidden\" name=\"artikelid[]\" value=\"".$ArtikelID."\"><tr><td>$Artikel</td><td class=\"preis\">$Preis</td><td>$Lieferant</td><td class=\"bild\"><input type=\"text\" name=\"menge[]\" value=\"\" size=\"1\"></td></tr>";
                    }

Datenbankverbindung steht alles. Und übertragen wird durch POST auch.

Hier werden jeweils ArtikelID und Menge in ein Array gespeichert. Ich hatte bereits versucht beide in ein Array zu speichern, nur weiß ich leider nicht, wie es anstellen soll - hab auch schon einige Zeit im Internet nachgeschaut. :/

Dann hatte ich noch vergebens versucht, beide Array in der folgenden PHP-Seite zu verknüpfen. Über den Ansatz eines leeren 2dimensionalen Array kam ich nicht hinaus.

Code:
$a = array(array( ))

Ich hab schon derart wirres Zeug versucht, wobei leider nichts funktionieren wollte.
Wäre sehr dankbar, wenn mir einer helfen könnte.


Mit freundlichen Grüßen
Yo_Low
 
Bisher hab ich mit dem oben genannten Code zwei einfache Arrays, artikelid und menge.

$artikelid = array(2,3,4,5,6,7);
$menge = array(1,2,3,4,5,6);

So siehts derzeit ungefähr aus.

Ich hätte gerne beide in einem gemeinsamen Array so dass die Menge z.B. 1 nur zur ArtikelID 2 gehört.

$array = [
[1, 2],
[3, 4],
];

Ziel ist es, hinterher die Menge der bestellten Artikel mit foreach in eine Datenbank zu schreiben.
 
Meinst du sowas:
PHP:
<?php
  $data = array();
 
  $_POST['artikelid'] = array(1,2,3,4,5,6,7,8,9);
  $_POST['menge'] = array(10,20,30,40,50,60,70,80,90);
  while (count($_POST['artikelid']))
  {
     $a = array_shift($_POST['artikelid']);
     $m = array_shift($_POST['menge']);
     $data[] = array('artikelid' => $a, 'menge' => $m);
  }
 
  echo "<pre>";
  print_r($data);
  echo "</pre>";
?>
 
Zuletzt bearbeitet von einem Moderator:
Ah nice. Genauso hab ich mir vorgestellt.

Jetzt nur noch verstehen was array_shift bewirkt und dann kann es weiter gehen.

Danke dir!
 
bdt600... hast dir gedacht so siehts cooler aus wa? :-D Warum so kompliziert?

PHP:
<?php

if (!isset($_POST['something'])) {
    return false;
}
$aSomething = $_POST['something'];

if (!isset($_POST['else'])) {
    return false;
}
$aElse = $_POST['else'];

$iSomethingLength = count();

if ($iSomethingLength != count($_POST['else'])) {
    return false;
}

$aData = array();
for ($i = 0; $i < $iSomethingLength; $i += 1) {
    $aData[] = array(
        'something' => $aSomething[$i],
        'else'       => $aElse[$i]
    );
}

?>
<pre><?php var_dump($aData);  ?></pre>

So sparst du dir die ganzen unnötigen funktionsaufrufe. :)
 
Zurück
Oben