Ich habe eine PHP - Variable vom Typ Array und möchte herausfinden, ob sie einen bestimmten Wert enthält, und den Benutzer darüber informieren, dass er vorhanden ist. Das ist mein Array:
Array ( [0] => kitchen [1] => bedroom [2] => living_room [3] => dining_room)
und ich würde gerne etwas tun wie:
if(Array contains 'kitchen') {echo 'this array contains kitchen';}
Was ist der beste Weg, um dies zu tun?
Verwenden Sie die Funktion in_array()
.
$array = array('kitchen', 'bedroom', 'living_room', 'dining_room');
if (in_array('kitchen', $array)) {
echo 'this array contains kitchen';
}
// Once upon a time there was a farmer
// He had multiple haystacks
$haystackOne = range(1, 10);
$haystackTwo = range(11, 20);
$haystackThree = range(21, 30);
// In one of these haystacks he lost a needle
$needle = Rand(1, 30);
// He wanted to know in what haystack his needle was
// And so he programmed...
if (in_array($needle, $haystackOne)) {
echo "The needle is in haystack one";
} elseif (in_array($needle, $haystackTwo)) {
echo "The needle is in haystack two";
} elseif (in_array($needle, $haystackThree)) {
echo "The needle is in haystack three";
}
// The farmer now knew where to find his needle
// And he lived happily ever after
Siehe in_array
<?php
$arr = array(0 => "kitchen", 1 => "bedroom", 2 => "living_room", 3 => "dining_room");
if (in_array("kitchen", $arr))
{
echo sprintf("'kitchen' is in '%s'", implode(', ', $arr));
}
?>
Sie müssen einen Suchalgorithmus für Ihr Array verwenden. Es hängt davon ab, wie groß Ihr Array ist, Sie haben viele Möglichkeiten, was Sie verwenden möchten. Oder Sie können eine der eingebauten Funktionen verwenden:
Von http://php.net/manual/en/function.in-array.php
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
Durchsucht den Heuhaufen nach Nadeln unter Verwendung eines losen Vergleichs, sofern nicht ein strikter Wert festgelegt ist.
if (in_array('kitchen', $rooms) ...
Verwendung dynamischer Variablen für die Suche in einem Array
/* https://ideone.com/Pfb0Ou */
$array = array('kitchen', 'bedroom', 'living_room', 'dining_room');
/* variable search */
$search = 'living_room';
if (in_array($search, $array)) {
echo "this array contains $search";
} else
echo "this array NOT contains $search";
So können Sie dies tun:
<?php
$rooms = ['kitchen', 'bedroom', 'living_room', 'dining_room']; # this is your array
if(in_array('kitchen', $rooms)){
echo 'this array contains kitchen';
}
Stellen Sie sicher, dass Sie nach kitchen und nicht nach kitchen suchen. Bei dieser Funktion wird die Groß- und Kleinschreibung beachtet. Die folgende Funktion funktioniert daher einfach nicht:
$rooms = ['kitchen', 'bedroom', 'living_room', 'dining_room']; # this is your array
if(in_array('KITCHEN', $rooms)){
echo 'this array contains kitchen';
}
Wenn Sie eine schnelle Suche nach dieser Methode wünschen case insensitive, schauen Sie sich die vorgeschlagene Lösung in dieser Antwort an: https://stackoverflow.com/a/30555568/8661779
Quelle: http://dwellupper.io/post/50/understanding-php-in-array-function-with-examples