本帖最后由 u012362664 于 2013-10-09 20:35:48 编辑

解决方案 »

  1.   

    bool in_array ( mixed needle, array haystack [, bool strict] )
    在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。 
      

  2.   

    函数in_array( ),执行过程是否这样:1.检查函数各个参数的类型。
       如果,类型不对,显示语法错误。
       如果,类型对,执行22.查找数组。3.如果,找到,返回结果:1
       如果,找不到,返回结果:0
      

  3.   

    函数参数:true,PHP官方中文文档,不是很详细。我的理解是:
    函数in_array( )
    1)没true,第1个参数,使用类型转换后的值,与数组元素比较。进行查找。
    2)没true,第1个参数,使用类型转换前的值,与数组元素比较。进行查找。对否?
      

  4.   

    更改:函数参数:true,PHP官方中文文档,不是很详细。我的理解是:
    函数in_array( )
    1)没true,第1个参数,使用类型转换后的值,与数组元素比较。进行查找。
    2)加true,第1个参数,使用类型转换前的值,与数组元素比较。进行查找。对否? 
      

  5.   


    <?     $x1=array(1=>"aaaa",2=>12,3=>"bb");
         $y1=in_array(12,$x1);      //类型转换后值:12
         echo $y1;
         echo "\r\n";
         
         $x2=array(1=>111,2=>12,3=>3333);
         $y2=in_array('12',$x2);      //类型转换后值:12
         echo $y2;
         echo "\r\n";
         
         $x3=array(1=>111,2=>12,3=>3333);
         $y3=in_array("12",$x3);     //类型转换后值:12
         echo $y3;
         echo "\r\n";
         echo  "------------------------------";
        
    ?><?     $x1=array(1=>"aaaa",2=>12,3=>"bb");
         $y1=in_array(12,$x1,true);     //类型转换前值:12
         echo $y1;
         echo "\r\n";
         
         $x2=array(1=>111,2=>12,3=>3333);
         $y2=in_array('12',$x2,true);      //类型转换前值:'12' ,是个字符串。
         echo $y2;
         echo "\r\n";
         
         $x3=array(1=>111,2=>12,3=>3333);
         $y3=in_array("12",$x3,true);     //类型转换前值:"12",是个字符串。
         echo $y3;
         echo "\r\n";
        
    ?>程序输出:
    1
    1
    1
    ---------------------------
    1
    0
    0