variable mit Inhalt von array vergleichen

gruebel-gruebel

Erfahrenes Mitglied
Hallöle und eine schönes neues Jahr an alle ,

habe ein Problem was schon zigmal beschrieben wurde Bin auch schon auf den Superseiten für PHP gewesen aber ich kapier das nicht.
Es geht darum:
In einer Variable steht eine Zahl und die möchte ich Prüfen ob diese Zahl in einem array vorkommt.
Die Zahl steht in dieser Variablen : $_POST["vers_id"]
Vergleichen ob Inhalt existent mit: $_SESSION["warenkorb"][$_POST["vers_id"]]
Habe es in vielen Variationen ausprobiert auch diese hier:

$array1 = array($_SESSION["warenkorb"][$_POST["vers_id"]]);

if (array_key_exists($_POST["vers_id"], $array1))
{
echo "Das Element ist in dem Array vorhanden";
}
Es funktioniert nicht.
Kann mir ein Profi einwenig helfen.
Gruß
grübel grübel
 
Wenn der zu suchende Wert ein Key des Arrays ist, dann:
PHP:
if(array_key_exists($_POST["vers_id"], $_SESSION["warenkorb"]))
    echo "Key ist gesetzt";
Ansonsten:
PHP:
if(in_array($_POST["vers_id"], $_SESSION["warenkorb"]))
    echo "Value ist gesetzt";
 
Hi!

Du hast folgendes Problem:

PHP:
$array1 = array($_SESSION["warenkorb"][$_POST["vers_id"]]);

$_SESSION["warenkorb"] ist bereits ein Array .. Du legst durch die o.g. Codezeile ein weiteres Array an.
Um dir das zu vermitteln mach doch mal folgendes.

PHP:
print_r($array1);

.. und schau Dir mal das Ergebnis an .. Du hast dein Array durch eine weitere Dimension erweitert und vergleichst deshalb die falschen Werte .. Versuchs mal so:

PHP:
if (array_key_exists($_POST["vers_id"], $_SESSION["warenkorb"][$_POST["vers_id"]]))
{
    echo "Das Element ist in dem Array vorhanden";
}

Viele Grüsse,

Magnus
 
Hallo mAu, und Magnus,

vielen Dank für die Hilfe, habe beides ausprobiert und muss dir Magnus sagen es hat nur so funktioniert:
if (array_key_exists($_POST["vers_id"], $_SESSION["warenkorb"]))
hier gab es eine Fehler zurück
if (array_key_exists($_POST["vers_id"], $_SESSION["warenkorb"][$_POST["vers_id"]]))

aber trotzdem vielen Dank
 
Zurück