PHP 有几种方法可以检查数组是否包含特定值。最方便的方法是使用内置函数 in_array()
。
in_array()
检查数组是否包含给定值。in_array()
的返回类型是布尔值。
in_array()
不会在数组中查找子字符串;该值应与数组中的值匹配。还有其他方法可以检查数组是否包含子字符串。
本教程探讨了检查数组是否包含我们正在寻找的值的不同方法。
在 PHP 中使用 in_array()
来检查数组是否包含某值
PHP in_array()
接受两个强制参数和一个可选参数,必需参数是值 $value
和数组 $array
,如果布尔值设置为 true
,则可选参数是布尔值 $mode
in_array()
将寻找相同类型的数据。
例子:
<?php
$values = array("demo1", "demo2",10);
if (in_array("10", $values)){
echo "Array contains the value<br>";
}
else{
echo "Array doesn't contains the value<br>";
}
if (in_array("10",$values, TRUE)){
echo "Array contains the value<br>";
}
else{
echo "Array doesn't contains the value<br>";
}
if (in_array(10,$values)){
echo "Array contains the value<br>";
}
else{
echo "Array doesn't contains the value<br>";
}
?>
上面的代码检查给定数组中是否存在值 10。第三个默认参数为 false,如果我们设置为 true,它也会寻找相同类型的值。
输出:
Array contains the value
Array doesn't contains the value
Array contains the value
PHP in_array()
与所有 PHP4 及以上版本兼容。
使用 foreach
循环检查字符串是否包含 PHP 中数组中的值
foreach
循环和 strpos()
函数可以一起使用来检查字符串是否包含数组中的值。
例子:
<?php
$values_array = array('John', 'Michelle', 'Shawn');
$demo_str = 'my name is Shawn';
foreach ($values_array as $val) {
if (strpos($demo_str, $val) !== FALSE) {
echo "The string contains a value from the array";
return true;
}
}
echo "The string doesn't contain a value from the array";
return false;
?>
strpos()
检查字符串是否包含子字符串,此代码将检查字符串是否包含给定数组中的值。
输出:
The string contains a value from the array
PHP strpos()
与所有 PHP4 及以上版本兼容。
使用 strpos()
和 json_encode()
检查字符串是否包含 PHP 数组中的值
json_encode()
是一个内置的 PHP 函数,用于将数组转换为 JSON
对象,简单来说就是转换成字符串。
例子:
$values_array = ["John is 25 years old", "Shawn", "Michelle"];
if (strpos(json_encode($values_array),"John") !== false) {
echo "Array contains the Name";
}
else{
echo "Array doesn't contains the Name";
}
上面的代码将数组转换为字符串并检查它是否包含子字符串。
输出:
Array contains the Name
PHP jason_encode()
兼容所有 PHP5 及以上版本。