我在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
PHP中的任何字符串在'string' == 0
上都将返回true,因此您可以将第一个0与索引26匹配。
您应该使用array_search
的$strick
参数来确保"Z"被视为一个字母。
但是,它强制您将整数值作为严格整数插入$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
否则,您将不得不编写自己的类似array_search
的函数。