我在PHP中使用Array_search来编写像 C / C ++:atoi 这样的函数,但具有不同的基本系统。我传递一个字符串,并且array_Search返回26作为索引36-61中值的Key。这是代码。
$mergeArr = array_merge(range('a', 'z'), range('0', '9'), range('A', 'Z'));
$newArr = str_split('dz7A');
$intArr = array();
foreach($newArr as $s) {
$k = array_search($s, $mergeArr);
print_r($k);
array_push($intArr, $k);
}
返回输出 3 25 33 26
预期产出: 3 25 33 36
36,因为A是array_index 26
答案 0 :(得分:3)
PHP中的任何字符串都将在'string' == 0
上返回true,因此您匹配第一个0,索引为26。
您应该使用$strick
的{{1}}参数来确保将'Z'视为字母。
但是,它会强制您在array_search
中将整数值作为严格整数插入:
$newArr
输出:
$mergeArr = array_merge(range('a', 'z'), range('0', '9'), range('A', 'Z'));
$newArr = array('d', 'z', 7, 'A'); // 7 instead of '7'
$intArr = array();
foreach($newArr as $s) {
$k = array_search($s, $mergeArr, true); // $strict = true instead of default false
print_r($k);
array_push($intArr, $k);
}
否则,您必须编写自己的3 25 33 36
函数。