首页 > PHP 阅读:2

PHP in_array():判断数组中是否存在某个值

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() 使用举例:
<?php
$arr = array("PHP", "JavaScript", "HTML", "CSS", "1234");

if ( in_array("HTML", $arr) ){
    echo "匹配已找到<br />";
}else{
    echo "匹配未找到<br />";
}

if ( in_array(1234, $arr, FALSE) ){
    echo "匹配已找到<br />";
}else{
    echo "匹配未找到<br />";
}

//采用严格模式
if ( in_array(1234, $arr, TRUE) ){
    echo "匹配已找到<br />";
}else{
    echo "匹配未找到<br />";
}
?>
程序运行结果:
匹配已找到
匹配已找到
匹配未找到

两点注意:
  • in_array() 只能在数组的当前维度中检查是否存在某个元素,不会递归数组中的每个元素。
  • in_array() 只能检查数组元素的值,而不能检查它的键或者索引。

请看下面的例子:
<?php
$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)