timo: $alles=$1+$2+$3

Hallo Ihr Lieben,

ich habe drei einzelne arrays, die ich zum schluss in eins packen muß, einmal zum ausdrucken, zum zweiten als weiterbehandlung zur Datenbankabfrage, nur funzt es bei nicht.

Es handelt sich um Text und nicht um Zahlen, also keine Addition

danke timo

  1. Hallo timo,

    Zu deiner Überschrift: $1,$2,$3 sind keine gültigen Variablennamen, ich
    vermute mal, du meinstest sowas wie $alle=$feld1+$feld2+$feld3 und möchtest,
    dass die Arrays ($feld1...) hintereinandergehängt werden.

    $feld1=Array("Erdbeer","Banane","Kiwi");
    $feld2=Array("grün","braun");

    sollen zu einem Feld mit ("Erdbeer","Banane","Kiwi","grün","braun") werden.

    Wenn das richtig ist, dann suchst du nach array_merge();
    http://www.php-center.de/de-html-manual/function.array-merge.html

    Die Addition von Feldern habe ich neugierigerweise gleich mal Ausprobiert,
    (kannte ich noch gar nicht) sie macht ja 'fast' was du willst.
    Dabei passiert einfach folgendes: Deine Arrays-Indices fangen alle bei 0
    an. (echo $feld[0]; // -> Erdbeer ) Die Addition von Feldern ersetzt jetzt aber,
    wenn Positionen mehrfach vorkommen, den Wert, so dass jeweils der letzte
    drin stehen bleibt:

    Feld 1    Feld 2     Ergebnis
    [0]  Erdbeer   grün     grün
    [1]  Banane    braun     braun
    [2]  Kiwi               Kiwi

    Grund: Es kann nur ein Element mit dem Index 0 (1,2...) geben.

    Die array_merge() Funktion numeriert die Felder um, damit das nicht passiert.
    Zumindest wenn die Felder numerische Indices haben.
    ( Unter http://www.php-center.de/de-html-manual/language.types.array.html
      findest du, wie Arrays auch nicht numerisches Indices haben können. )

    Gruss,
    Carsten

    1. hallo carsten,

      danke für deinen tipp, aber diese funktion gibt es erst in php4,

      ich bin jedoch gezwungen auf php3 zu schreiben, naja was solls,

      ich schaue mal noch ein wenig und dann werden wir sehen,

      danke

      timo

      1. hallo timo!

        SelfDenken ;-)

        function array_merge($array1,$array2)
        {
        for($cnt=0;$cnt<sizeof($array2);$cnt++) {
          $array1[sizeof($array1)+$cnt+1]=$array2[$cnt];
        }
        return $array1;
        }

        hab ich jetzt zwar nicht getestet, soll aber nur ein loesungsansatz sein.

        Gruß
        Thomas (der P)

        <Menschelei>Entschuldige Stefan, dass ich gleich eine Loesung gepostet habe *g*</Meschelei>