为什么下面2个都搜不到啊,我看了手册说加个false可以的,为什么还不行?<?php
$dr=array('cc','Dd','Ee');
if(in_array("dd",$dr,false)){
echo "aa";
}if(array_search("dd",$dr,false)){
echo "aa";
}
?>

解决方案 »

  1.   

    如果 needle 是字符串,则比较是区分大小写的。
    如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。 
      

  2.   

    in_array可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。值的类型是否相同 不是区分大小写array_search如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。也是类型和值,并没有说到区分大小写的事情.按照你的需求1.遍历 使用字符串比较函数
    2.正则
    3.全部转换成小写后比较
    ....
      

  3.   

    我想问下in_array函数在什么情况下不区分大小写?
    我换成数组还是区分大小写。
    $dr=array('cc','Dd','Ee');
    $vr=array('dd');
    if(in_array($vr,$dr,false)){
        echo "aa";
    }
      

  4.   

    麻烦你自己看php.net,这种基础问题你将来遇见成百上千个,你都来问吗
      

  5.   


    自带的函数 in_array 在什么情况下都区分大小写.
      

  6.   

    自己写一个就是了$dr = array('cc','Dd','Ee');
    if(in_iarray("dd",$dr,false)){
        echo "aa";
    }function in_iarray($needle, $haystack, $strict=false) {
      if(! is_string($needle)) return in_array($needle, $haystack, $strict);
      return in_array(strtolower($needle), array_map('strtolower', $haystack));
    }