Michael: 3 strings in eine 3 Dimensionales Array schreiben

Beitrag lesen

  1. Zwei Dimensionen reichen aus:

Array danach:

[0] => Array
          (
          [0] => 101
          [1] => 11
          [2] => 1
          )
   ..........
   [9] => Array
          (
          [0] => 110
          [1] => 15
          [2] => 2
          )

  1. Explode Deine Listen doch ebenfalls in ein Array, dann ist Dein Script flexibler was die Anzahl der Werte angeht die Du pro Datensatz schreiben willst.

  2. Ich hab zwei verschachtelte for-Schleifen anstatt foreach genommen, meiner Meinung nach in dem Fall besser da Du die Zählvariablen zum Ansteuern Deiner Indizes der Arrays nehmen kannst. Dies macht das ganze IMHO flexibler.

  3. Mir hilft es wenn ich die gewünschte Struktur des Arrays aufschreibe, dann ist das ganze nicht mehr so abstrakt.

Wie gesagt, es handelt sich IMHO lediglich um eine Umverteilung oder Neuanordnung der bestehenden Werte, möglicherweise gibt es da eine raffiniertere Lösung mit bestehenden PHP-Funktionen.

Viel Spass beim testen,

Hallo AndreD

ich habe nun etwas rumgespielt das mit dem abstrakten ist die eine Sache ich schreibe es mir ebenfalls auf einem Zettel auf aber wenn man nicht genau weiß wie es in der Praxis das letzendlich funktioniert das ist das ist eine andere Sache... Ok da hilft nur probieren und verstehen.

Das mit error_reporting(E_ALL) kannte ich noch nicht darum werde ich mich nach mein Problem kümmern.

array_fill kann ich für mein Problem nicht gebrauchen? http://www.php-mysql-programmierung.de/function.array-fill.html Oder wenn doch weiß ich nicht was ich damit soll?

Ok so sieht meine Lösung aus die noch nicht richtig funktioniert...

$gesamt_liste1   = "101;102;103;104;105;106;107;108;109;110";
$gesamt_liste2   = "11 ;11 ;12 ;12 ;12 ;13 ;13 ;14 ;14 ;15";
$gesamt_liste3   = "1  ;1  ;1  ;1  ;1  ;2  ;2  ;2  ;2  ;2";

$listen1 = explode(';', $gesamt_liste1);
$listen2 = explode(';', $gesamt_liste2);
$listen3 = explode(';', $gesamt_liste3);

$array_kompakt=array();

$y = 0;
for ($i=0; $i <=10; $i++)
{
 foreach ($listen1 as $n1)
  {
  $array_kompakt[$i][0]=$n1;
  }

foreach ($listen2 as $n2)
  {
  $array_kompakt[$i][1]=$n2;
  }

foreach ($listen3 as $n3)
  {
  $array_kompakt[$i][2]=$n3;
  }
 $y++;
}

echo "$array_kompakt:<br><pre>";
 print_r($array_kompakt);
 echo "</pre><br>";

PHP gibt mir folgende Ausgabe:

$array_kompakt:

Array
(
    [0] => Array
        (
            [0] => 110
            [1] => 15
            [2] => 2
        )

[1] => Array
        (
            [0] => 110
            [1] => 15
            [2] => 2
        )

...

[10] => Array
        (
            [0] => 110
            [1] => 15
            [2] => 2
        )

)

In meinem Script wo

$array_kompakt[$i][0]=$n1;

$array_kompakt[$i][1]=$n2;

$array_kompakt[$i][2]=$n3;

Wollte ich Feld Position 0 1 2 mit $y hochzählen aber das ist total falsch?
Warum Du für Deine Lösung kein foreach mehr brauchst verstehe ich nicht wirklich?

Gruß Michael