http://docs.php.net/manual/zh/function.array-keys.php
<?
   $x=array("1"=>"aa","2"=>"bb","3"=>"cc","4"=>"bb");
   $y1=array_keys($x,bb,false);
   $y2=array_keys($x,bb,true);
   print_r($x);
   print_r($y1);
   print_r($y2);
?>
函数第3个参数,有什么作用?
程序为什么出错了?

解决方案 »

  1.   

    看看这个:http://baike.baidu.com/view/4068562.htm赫然看开朗
      

  2.   

    改成这样:$y2=array_keys($x,"bb",true); 就对了
      

  3.   

     strict    判断在搜索的时候是否该使用严格的比较(===)。出错是因为 $y1=array_keys($x,bb,false); 这里的bb没加引号,php首先会认为它是一个常量,而你的代码中没有常量,所以就报错了。
      

  4.   

    第三个参数是根据类型返回带有指定值的键名,
    $x=array("1"=>"111111","2"=>"bb","3"=>"cc","4"=>"bb");
    $y1=array_keys($x,111111,true);//将不再返回数据(原数组里“111111”是字符串类型,而这里给的是数字类型)报错是因为字符串要用单引号或双引号
    $y1=array_keys($x,"bb",false);
    $y2=array_keys($x,"bb",true);