webentwicklung-frage-antwort-db.com.de

Wie kann ich überprüfen, ob ein Array einen bestimmten Wert in PHP enthält?

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?

56
hairynuggets

Verwenden Sie die Funktion in_array() .

$array = array('kitchen', 'bedroom', 'living_room', 'dining_room');

if (in_array('kitchen', $array)) {
    echo 'this array contains kitchen';
}
125
Wiseguy
// 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
15
Peter

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));
    }
?>
11
Abbas

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:

http://www.w3schools.com/php/php_ref_array.asp

http://php.net/manual/de/function.array-search.php

3
Hubert Jarema

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.

3
crenate
if (in_array('kitchen', $rooms) ...
1
Eugen Rieck

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";
0
antelove

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

0
Pranav Rana