Karl: Array Wert Einfügen

Hi Leute,
ich habe folgendes Problem:

Ich möchte mitten in ein Array ein Wert einfügen nach folgenden Muster:

Feld[0]=a
Feld[1]=c
Feld[2]=d

und möchte am Ende ein Array haben welches wie folgt Aussieht:

Feld[0]=a
Feld[1]=b
Feld[2]=c
Feld[3]=d

Ich bedanke mich schon mal bei Eurer Hilfe.

MFG
Karl

  1. Hello Karl,

    Ich möchte mitten in ein Array ein Wert einfügen nach folgenden Muster:

    Feld[0]=a
    Feld[1]=c
    Feld[2]=d

    und möchte am Ende ein Array haben welches wie folgt Aussieht:

    Feld[0]=a
    Feld[1]=b
    Feld[2]=c
    Feld[3]=d

    Ein Array_Insert() gibt es noch nicht. Das musst Du Dir selber bauen. Da geht man genauso vor, wie beim Mischen von Dateien.
    Man liest Satz für Satz und schreibt ihn in eine neue Datei (hier neues Array) bis man an die kritische Stelle kommt, dann fügt man erst den neuen Satz ein, dann den kritischen und dann mit Rest same Procedure as every Record, James...

    Also schauen, welche Funktion denn überhaupt ein Array nach Index abarbeitet. Foreach() geht nicht nach dem Index, sondern der Baumstruktur vor. Bei "For/Next" kann man euf Lücken treffen und außerdem kennt man das Ende nicht (höchsten Index). Wenn man vorher sortieren (oder aufräumen) lässt, verschwinden zar die Lücken, aber die Indexe ändern sich. Ist gar kein einfaches Problem, wenn man zuviel über die "Arrays" in PHP weiß...

    Zum vorherigen Aufräumen ist Array_Slice() Dein Freund. Danach kannst Du dann die passende Stelle mit Array_Search() suchen und dann die beschriebene Mischung vornehmen.

    Wenn eine sinnvolle Funktion dabei rauskommt, bitte hier posten.

    function array_insert($insert_value,$insert_key,$array)
    {
      # ??
      # ??
      return new_array;
    }

    Grüße

    Tom

  2. Hallo,

    Ich möchte mitten in ein Array ein Wert einfügen nach folgenden Muster:

    Feld[0]=a
    Feld[1]=c
    Feld[2]=d

    und möchte am Ende ein Array haben welches wie folgt Aussieht:

    Feld[0]=a
    Feld[1]=b
    Feld[2]=c
    Feld[3]=d

    Probiere es so:

    <?php

    $Feld[0]="a";
    $Feld[1]="c";
    $Feld[2]="d";

    array_splice($Feld,1,0,"b");
    var_dump($Feld);

    ?>

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
  3. Ach kapperlapapp, warum einfach wenn es auch schwieriger geht.
    probier folgends:

    <?
    function arr_quetschen($uebergebenes_array, $wert, $zwischenindex){

    $arraygroesse = count($uebergebenes_array);
     $arr_nach= array();
     $counter = $zwischenindex;
     $counter2= 0;

    while($counter < count($uebergebenes_array)){
      if($counter >= $zwischenindex){
       $arr_nach[count($arr_nach)] = $uebergebenes_array[$counter];
       $counter++;
      }else{
       $counter++;
      }
     }

    for($x=$zwischenindex; $x <= $arraygroesse; $x++){
      if($x==$zwischenindex){
       $uebergebenes_array[$zwischenindex] = "b";
      }else{
       while($counter2 <= $arraygroesse){
        $uebergebenes_array[++$zwischenindex] = $arr_nach[$counter2];
        $counter2++;
       }
      }

    }

    return $uebergebenes_array;
    }

    $test[0] = "a";
    $test[1] = "c";
    $test[2] = "d";

    //1. parameter ist das array selbst, 2. ist der wert, 3. ist der indexwert wo der wert zwischengefügt werden soll

    $test = arr_quetschen($test, "b", 1);

    ?>

    1. Nachtrag:sry hatte das falsche gepostet, dieser code ist diesmal richtig!!
      denn warum soll man nicht einfach mal das rad neuerfinden *gg*

      <?
      function arr_quetschen($uebergebenes_array, $wert, $zwischenindex){

      $arraygroesse = count($uebergebenes_array);
       $arr_nach= array();
       $counter = $zwischenindex;
       $counter2= 0;

      while($counter < count($uebergebenes_array)){
        if($counter >= $zwischenindex){
         $arr_nach[count($arr_nach)] = $uebergebenes_array[$counter];
         $counter++;
        }else{
         $counter++;
        }
       }

      for($x=$zwischenindex; $x <= $arraygroesse; $x++){
        if($x==$zwischenindex){
         $uebergebenes_array[$zwischenindex] = $wert;
        }else{
         while($counter2 <= $arraygroesse){
          $uebergebenes_array[++$zwischenindex] = $arr_nach[$counter2];
          $counter2++;
         }
        }

      }

      return $uebergebenes_array;
      }

      $test[0] = "a";
      $test[1] = "c";
      $test[2] = "d";

      //1. parameter ist das array selbst, 2. ist der wert, 3. ist der indexwert wo der wert zwischengefügt werden soll

      $test = arr_quetschen($test, "b", 1);
      ?>

      1. <?php
        function ich_machs_mal_kurz($val,$key,$alt)
           {
           for($i=0;$i<$key;$i++)
              {
              $neu[]=$alt[$i];
              }
           $neu[]=$alt[$key];
           for(;$key<(count($alt)+1);$key++)
              {
              $neu[]=$alt[$key];
              }
           return($neu);
           }

        $test[0] = "a";
        $test[1] = "c";
        $test[2] = "d";

        $test=ich_machs_mal_kurz("b",1,$test);

        Gruß aus Berlin!
        eddi

    2. Hi,
      ich schaue mir das Morgen mal in aller ruhe an, habe heute kein Nerv mehr dazu.
      Aber schon mal Danke

      MFG
      Karl