Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrere Array-Schlüssel auf Existenz prüfen

Einklappen

Neue Werbung 2019

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

  • michiman
    hat ein Thema erstellt Mehrere Array-Schlüssel auf Existenz prüfen.

    Mehrere Array-Schlüssel auf Existenz prüfen

    Hi zusammen,

    ich hab mal wieder ein kleines Problem, an dem ich nicht weiter komm und Freund google kann mir nur bedingt helfen.

    Und zwar suche ich eine Funktion, die in einem Array nach bestimmten Schlüsseln sucht. Nun hab ich array_key_exists gefunden, aber die sucht nur nach einem bestimmten Wert. Ich brauch eine Funktion, die z.B. prüft, ob Schlüssel 2 und/oder Schlüssel 4 und/oder Schlüssel 9 vergeben sind und dann true zurück gibt.

    Habt ihr so eine Funktion schon einmal gesehen?

    Danke euch und Grüße

  • lstegelitz
    antwortet
    Kommt immer drauf an, was genau du prüfen willst. Um festzustellen, ob exakt die Anzahl der Schlüssel gefunden wurde, kommst du nicht drumherum zu wissen, wieviele gesucht waren.

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Übrigens: array_diff_key und count-Prüfung des Resultats auf den Wert 0, statt einer Intersection und doppelter count-Abfrage, reduziert das ganze auf eine count-Abfrage.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    array_keys() und array_intersect() helfen weiter:

    PHP-Code:
    $array = array(=> 'test'=> 'test2'=> 'test'=> 'test'); 

    $key_need = array(159); 

    $array_keys array_keys($array);

    $intersect array_intersect($key_need$array_keys);
    var_dump($intersect);

    if (
    count($intersect) == count($keys_need))
      echo 
    'alle gesuchten Schlüssel sind enthalten.'

    Einen Kommentar schreiben:


  • michiman
    antwortet
    Danke für eure Antworten. Ich dachte, es gibt vielleicht schon eine fertige... Dann bau ich sie selbst.

    Danke an alle!

    Einen Kommentar schreiben:


  • chiller20000
    antwortet
    Zitat von michiman Beitrag anzeigen
    @erc: Klar sind mir die bekannt, ich dachte nur an eine einfachere Lösung in der Form: existiert_einer_dieser_keys('2','4','9'; array);
    Bau dir doch eine Funktion.

    Kleiner Ansatz:

    PHP-Code:
    //In diesem Arry soll gesucht werden
    $array = array(=> 'test'=> 'test2'=> 'test');

    //Hier gibst du an nach welchen Keys gesucht werden soll
    $key_need = array(159);

    check_if_keys_in_array($key_need$array);

    function 
    check_if_keys_in_array($key_need$arr){
        foreach(
    $key_need as $value){
            if(!
    key_exists($value$arr)){
                return 
    false;
            }
        }
        return 
    true;

    Einen Kommentar schreiben:


  • kwebsde
    antwortet
    Wenn Du nur prüfen willst, ob der Key existiert, unabhängig vom Wert, dann sollte Dir isset() ausreichen. Ansonsten dann noch zum Beispiel mit empty() prüfen, ob hier etwas drin steht.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Ev. als Alternative... http://php.net/manual/de/function.isset.php

    Aber genau lesen ob das für deine Situation zutrifft!

    Prüft, ob eine Variable existiert und nicht NULL ist.
    ...
    Wenn mehrere Parameter übergeben werden, gibt isset() nur dann TRUE zurück, wenn alle Parameter belegt sind. Die Auswertung geht von links nach rechts und wird abgebrochen, sobald eine Variable nicht belegt ist.

    Einen Kommentar schreiben:


  • michiman
    antwortet
    @erc: Klar sind mir die bekannt, ich dachte nur an eine einfachere Lösung in der Form: existiert_einer_dieser_keys('2','4','9'; array);

    Einen Kommentar schreiben:


  • erc
    antwortet
    Logische Operatoren sind dir bekannt? Da gehöhren unter anderem auch AND und OR dazu.

    PHP-Code:
    if(array_key_exists(...) AND array_key_exists(...) ...) {


    Einen Kommentar schreiben:

Lädt...
X