PHP in_array() 函数用来判断数组中是否存在某个值,语法如下:
bool in_array ( mixed $value , array $arr [, bool $mode = FALSE ] )
参数说明:
value 表示要检索的值。
arr 表示要检索的数组。
mode 表示检索模式,是一个可选参数,默认是 FALSE。
如果 mode 设置为 TRUE,那么将采用严格模式,in_array() 还会检查 value 和 arr 的类型是否相同;
如果 mode 设置为 FALSE,那么将采用宽松模式,in_array() 只会检查 value 和 arr 的值,而不会检查它们的类型。
返回值:in_array() 将返回一个布尔值。arr 中存在 value 将返回 TRUE,否则返回 FALSE。
in_array() 使用举例:
$arr = array("PHP", "JavaScript", "HTML", "CSS", "1234");
if ( in_array("HTML", $arr) ){
echo "匹配已找到
";
}else{
echo "匹配未找到
";
}
if ( in_array(1234, $arr, FALSE) ){
echo "匹配已找到
";
}else{
echo "匹配未找到
";
}
//采用严格模式
if ( in_array(1234, $arr, TRUE) ){
echo "匹配已找到
";
}else{
echo "匹配未找到
";
}
?>
程序运行结果:
匹配已找到
匹配已找到
匹配未找到
两点注意:
in_array() 只能在数组的当前维度中检查是否存在某个元素,不会递归数组中的每个元素。
in_array() 只能检查数组元素的值,而不能检查它的键或者索引。
请看下面的例子:
$arr = array(
'安徽' => array(
'阜阳'=>array('阜南县','临泉县','颍州区'),
'宿州'=>array('墉桥区','灵璧县','泗县'),
'合肥'=>array('蜀山区','长丰县','肥东')
),
'河南' => array(
'洛阳'=>array('西工区','老城区','孟津县'),
'郑州市'=>array('中原区','金水区')
)
);
var_dump( in_array('阜南县', $arr) ); // false
var_dump( in_array( array('阜南县','临泉县','颍州区'), $arr) ); // false
var_dump( in_array('河南', $arr) ); // false,不能检查键
var_dump( in_array(array(
'洛阳'=>array('西工区','老城区','孟津县'),
'郑州市'=>array('中原区','金水区')
), $arr)
); // true
?>
运行结果:
bool(false)
bool(false)
bool(false)
bool(true)