<?php
$str=array("yi","er","san","yi");
$str1=array__keys($str,"yi");
print_r($str1);
?>
为什么只输出最后一个的键值,按道理来说array_keys返回的是所有搜索的键值的集合,也就是数组,把这个数组赋值给另一个变量,然后在输出这个数组,输出出来不应该也是数组的形式吗?
代码
<?php
$str=array("yi","er","san","yi");
$str1=array_keys($str,"yi");
print_r($str1);
?>
并不是只输出最后一个
Array
(
[0] => 0
[1] => 3
)
以上是在我机器上的输出结果,题主是不是搞错了?
另外: 函数 array_keys
名字里只有一个下划线
?php>
$str1=array("php"=>array("yi","er","3"));
$str=array("yi","er","san","yi");
$key=array_search("yi",$str,true);
$str2=array_keys($str,"yi");
print_r($str2);
?>
array_keys() 方法的意思是这样子的,array_keys(array(),'');
方法里面的字符串是可填写或不填写的,
填写的话 就是匹配array()中val = '' 字符串的 key
不填写的话 就是 拿出array()所有的key,
所以 题主的问题 就是 它匹配了 你的字符串 在数组中 出现的key的值
array_keys中间是一个下划线,你写的是两个下划线, 是你封装的方法吗? 如果是的花,检查下方法里面的代码是不是写错了?