Antworten:
Verwenden if?
if(isset($something['say']) && $something['say'] == 'bla') {
// do something
}
Übrigens weisen Sie dem Schlüssel sayzweimal einen Wert zu , sodass Ihr Array zu einem Array mit nur einem Wert führt.
Verwenden von: in_array()
$search_array = array('user_from','lucky_draw_id','prize_id');
if (in_array('prize_id', $search_array)) {
echo "The 'prize_id' element is in the array";
}
Hier wird ausgegeben: The 'prize_id' element is in the array
Verwenden von: array_key_exists()
$search_array = array('user_from','lucky_draw_id','prize_id');
if (array_key_exists('prize_id', $search_array)) {
echo "The 'prize_id' element is in the array";
}
Keine Leistung
Zusammenfassend array_key_exists()funktioniert nicht mit einem einfachen Array. Es ist nur zu finden, ob ein Array-Schlüssel vorhanden ist oder nicht. Verwendenin_array() stattdessen.
Hier ist mehr Beispiel:
<?php
/**++++++++++++++++++++++++++++++++++++++++++++++
* 1. example with assoc array using in_array
*
* IMPORTANT NOTE: in_array is case-sensitive
* in_array — Checks if a value exists in an array
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a' => 'bla', 'b' => 'omg');
if (in_array('omg', $something)) {
echo "|1| The 'omg' value found in the assoc array ||";
}
/**++++++++++++++++++++++++++++++++++++++++++++++
* 2. example with index array using in_array
*
* IMPORTANT NOTE: in_array is case-sensitive
* in_array — Checks if a value exists in an array
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('bla', 'omg');
if (in_array('omg', $something)) {
echo "|2| The 'omg' value found in the index array ||";
}
/**++++++++++++++++++++++++++++++++++++++++++++++
* 3. trying with array_search
*
* array_search — Searches the array for a given value
* and returns the corresponding key if successful
*
* DOES NOT WORK FOR MULTI-DIMENSIONAL ARRAY
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a' => 'bla', 'b' => 'omg');
if (array_search('bla', $something)) {
echo "|3| The 'bla' value found in the assoc array ||";
}
/**++++++++++++++++++++++++++++++++++++++++++++++
* 4. trying with isset (fastest ever)
*
* isset — Determine if a variable is set and
* is not NULL
*++++++++++++++++++++++++++++++++++++++++++++++
*/
$something = array('a' => 'bla', 'b' => 'omg');
if($something['a']=='bla'){
echo "|4| Yeah!! 'bla' found in array ||";
}
/**
* OUTPUT:
* |1| The 'omg' element value found in the assoc array ||
* |2| The 'omg' element value found in the index array ||
* |3| The 'bla' element value found in the assoc array ||
* |4| Yeah!! 'bla' found in array ||
*/
?>
Hier ist PHP DEMO
array_key_exists()sucht nach Array-Schlüsseln, während letzteres $search_arrayassoziatives Array enthält. Kein Zweifel, es wird nicht funktionieren. Du solltest array_flip()es zuerst tun.
Sie können verwenden:
array_search()in_array()array_flip()undarray_key_exists()So überprüfen Sie, ob der Index definiert ist: isset($something['say'])
Sie können mit isset () oder manchmal sogar noch besser array_key_exists () testen, ob ein Array überhaupt ein bestimmtes Element hat oder nicht. (in der Dokumentation werden die Unterschiede erläutert). Wenn Sie nicht sicher sind, ob das Array ein Element mit dem Index "say" enthält, sollten Sie dies zuerst testen. Andernfalls wird möglicherweise die Meldung "warning: undefined index ...." angezeigt.
Für den Test, ob der Wert des Elements einer Zeichenfolge entspricht, können Sie == oder (wieder manchmal besser) den Identitätsoperator === verwenden, der kein Typ-Jonglieren zulässt .
if( isset($something['say']) && 'bla'===$something['say'] ) {
// ...
}
in_array () ist in Ordnung, wenn Sie nur überprüfen, aber wenn Sie überprüfen müssen, ob ein Wert vorhanden ist, und den zugehörigen Schlüssel zurückgeben müssen, ist array_search eine bessere Option.
$data = [
'hello',
'world'
];
$key = array_search('world', $data);
if ($key) {
echo 'Key is ' . $key;
} else {
echo 'Key not found';
}
Dies wird "Schlüssel ist 1" drucken
Verwenden Sie einfach die PHP-Funktion array_key_exists()
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
<?php
if (in_array('your_variable', $Your_array)) {
$redImg = 'true code here';
} else {
$redImg = 'false code here';
}
?>
Zunächst einmal kann für ein assoziatives Array ein Schlüssel nur einmal definiert werden, sodass dieses Array niemals existieren würde. Andernfalls verwenden Sie einfach, in_array()um festzustellen, ob sich dieses bestimmte Array-Element in einem Array möglicher Lösungen befindet.
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
Eine andere Verwendung von in_array in_array () mit einem Array als Nadel
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (in_array(array('p', 'h'), $a)) {
echo "'ph' was found\n";
}
if (in_array(array('f', 'i'), $a)) {
echo "'fi' was found\n";
}
if (in_array('o', $a)) {
echo "'o' was found\n";
}
?>
Angenommen, Sie verwenden ein einfaches Array
. dh
$MyArray = array("red","blue","green");
Sie können diese Funktion verwenden
function val_in_arr($val,$arr){
foreach($arr as $arr_val){
if($arr_val == $val){
return true;
}
}
return false;
}
Verwendung:
val_in_arr("red",$MyArray); //returns true
val_in_arr("brown",$MyArray); //returns false