时间:2021-07-01 10:21:17 帮助过:5人阅读
function getKey($arr) { return $arrKey = array_keys($arr, 'aa');}$testArr = array('0'=>'XX','aa'=>'XX','1'=>'YY','bb'=>'YY','2'=>'ZZ','cc'=>'ZZ');$array1 = array_keys($testArr);$array2 = array('0', 'aa', '1', 'bb', '2','cc');print_r($array1);echo '
';print_r($array2);echo '
';print_r(getKey($array1));echo '
';print_r(getKey($array2));
return $arrKey = array_keys($arr, 'aa',true);
array_keys 中 0 和 '0' 是有区别的
这一点你可以用 var_dump 观察到
array_keys($arr, 'aa')
是返回值为 aa 的元素的键
当值为 0 时, 'aa' == 0 因为一边是数值,所以 aa 会转换为 0 进行比较,表达式成立
当值为 '0' 时, 'aa' == '0' 因为两边是字符串,无需转换,表达式不成立成立
'XX','aa'=>'XX','1'=>'YY','bb'=>'YY','2'=>'ZZ','cc'=>'ZZ'); $array1 = array_keys($testArr); $array2 = array('0', 'aa', '1', 'bb', '2','cc'); var_dump($array1); echo '
'; var_dump($array2); echo '
'; print_r(getKey($array1)); echo '
'; print_r(getKey($array2)); echo '
'; $arr = array(0,'xx',0,'bb'); print_r(array_keys($arr, 'aa'));?>
感谢microlab2009和xuzuning的详细指导,这下很明白了。