Ankündigung

Einklappen
Keine Ankündigung bisher.

array_search in Mehrdimensionalen Arrays.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • array_search in Mehrdimensionalen Arrays.

    Hallo,

    folgendes Problem :

    Ich hole mir aus einer Datenbank Datensätze like this :

    Name, ID

    Dieses speichere ich in ein Mehrdimensionales Array :
    Code:
    $data[1][name]=$zeile["name"];
    $data[1][id]=$zeile["id"];
    Alles schön und gut.

    Jetzt will ich in dem Array aber nur die haben, die noch nicht
    im Array sind. Also schwupp mal im PHPFAQ geschaut und auch gefunden :

    also folgenden Code generiert :

    Code:
    if (!array_search($zeile["name"],$data)
    {
    $data[1][name]=$zeile["name"];
    $data[1][id]=$zeile["id"];
    }
    Schön und gut. Funktioniert aber nicht. Er schreibt trotzdem jeden Datensatz ins Array ohne Rücksicht auf verluste !

    jemand ne Idee ?

    Gruss,

    Werner
    * * * * COMMODORE C64 BASIC V2 * * * *
    64K RAM SYSTEM 38911 BASIC BYTES FREE
    READY


  • #2
    Wenn die IDs eindeutig sind, kannst Du das array so aufbauen:
    $data[$zeile["id"]]=$zeile["name"];


    Der Beitrag wurde verschoben, wegen...
    ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

    Bemerkung:
    Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

    moved to PHP - Anfänger
    mod = master of disaster

    Kommentar


    • #3
      Das ist sehr nett...

      Vor allen das umsetzen des Beitrags zu den Anfängern finde ich nett. Aber ok.

      Damit ist die Frage jedoch nicht beantwortet.

      Ich wollte nicht wissen wie ich den Array anders aufbauen kann. Das weiss ich schon. Ich brauche den Array aber in numerischer Reihenfolge.

      Und B.

      Ich habe vorher Google gequält,
      Programmiere seit 22 Jahren
      Und habe das Manuel gelesen.

      Eine "professionelle" Antwort war das sicherlich nicht.


      Ich wollte NICHT wissen wie ich den Array anders aufbauen kann,
      sondern warum dieser shit Befehl nicht funktioniert !

      Nichts für Ungut,

      Greets,

      Werner
      * * * * COMMODORE C64 BASIC V2 * * * *
      64K RAM SYSTEM 38911 BASIC BYTES FREE
      READY

      Kommentar


      • #4
        Re: Das ist sehr nett...

        Zitat von Solitaer
        Programmiere seit 22 Jahren
        Ernsthaft?

        Zitat von Solitaer
        Ich wollte NICHT wissen wie ich den Array anders aufbauen kann, sondern warum dieser shit Befehl nicht funktioniert !
        1. ist "jemand ne Idee ?" eine der denkbar unklarsten Fragestellungen.

        2. Der Befehl Funktioniert. Und warum er nicht das ist, was Du brauchst, hast Du doch schon selbst festgestellt, nämlich dass das Array mehrdimensional ist, und die allermeisten Array-Funktionen nicht darauf ausgelegt.
        array_search() findet in dem Mehrdimensionalen Array nur Arrays, die ungleich dem String sind, den Du suchst.

        Dein Fall ist z.B. durch ne kleine Schleife zu lösen:

        funktion search_in_strange_array($arr,$findme) {
        foreach ($arr as $value) {
        if ($value["name"] == $findme)
        return true;
        }
        return false;
        }

        PS: Dir ist klar, dass Du, um eine definitionsgemäß professionelle Antwort zu bekommen, mich bezahlen müsstest? Da Du es nicht tust, musst Du dich mit der Hilfsbrereitschaft zufrieden geben, die meine Laune grad hergibt, mal abgesehen davon, dass es nicht nur unprofessionell, sondern unsinnig ist, auf unpräzise Fragen präzise Antworten zu erwarten. Und wenn Du meinst, das vorkauen einer einfachen Schleife gehöre zu den Fortgeschrittenen, hast Du da ganz andere Maßstäbe als ich.
        mod = master of disaster

        Kommentar


        • #5
          Mal grundlegend eine Anmerkung.

          Ich wollte dich nicht persönlich Angreifen, sondern das System das hier herscht.

          Diese vorgehensweise ist mir schon mal passiert. Das zwar der Beitrag ansich kritisiert und verschoben wurde, jedoch zur Lösung nicht beigetragen wurde.

          Und anstatt zu Antworten, obwohl man nicht will, sollte man lieber gar nicht antworten.

          Das ist jedoch ein typisch "deutsches" Problem. Wir verwalten uns zu tode.

          ----

          Danke für deinen konstruktiven Beitrag Nr. 2. Selber im Array zu suchen wäre meine 2. Lösung gewesen. Ich wollte halt nur das Rad nicht neu
          erfinden und lieber vorgefertigte Befehle nutzen.

          Die Antwort : Das die Arraybefehle auf mehrdimensionalen Array keine wirkung haben war hilfreich.

          -----

          Mir sind die Forenregeln bekannt, aber durchaus nicht immer klar.

          Jemanden als Profi hinzustellen nur weil er einen gewissen Befehlssatz immer benutzt halte ich für kindisch.

          Das nur mal so am Rande.

          Und

          Ja ich programmiere seit 22 Jahren.

          Angefangen 1983 auf einem C64- Schnief.
          Dann CanDo auf dem Amiga
          C++ auf einem 386er
          Datenbankprogrammierung unter UNIX mit INFORMIX
          Jetzt PHP und C++ auf einem PC.


          Gruss,

          Werner
          * * * * COMMODORE C64 BASIC V2 * * * *
          64K RAM SYSTEM 38911 BASIC BYTES FREE
          READY

          Kommentar


          • #6
            Zitat von Solitaer
            Die Antwort : Das die Arraybefehle auf mehrdimensionalen Array keine wirkung haben war hilfreich.
            Das stimmt so nicht ganz. Die Array-Funktionen arbeiten linear die erste Ebene eines Mehrdimensionalen Arrays ab, wie in jeder anderen Sprache eigentlich auch. Je nachdem, um welche Funktion es sich handelt, und wenn man sich bewusst ist, dass ein mehrdimensionales Array einfach ein Array von Arrays ist, kann man damit durchaus sinnvolle Dinge anstelllen.
            Was die Array-Funktionen nicht tun, ist rekursiv in die Unter-Arrays hinabzusteigene.
            mod = master of disaster

            Kommentar

            Lädt...
            X