我使用此代码获取第一个数字并将其替换为0-9,但我总是得到0-0-9的结果。然后我在数组9中删除了它,它开始正常工作。为什么会这样?
$direction = strtoupper(substr($query_row["Band"],0,1));
$replace = [
'0' => '0-9','1' => '0-9','2' => '0-9','3' => '0-9','4' => '0-9',
'5' => '0-9','6' => '0-9','7' => '0-9','8' => '0-9', '9' => '0-9' ];
$dir= str_replace(array_keys($replace), $replace, $direction);
试试这个
$search = array('0','1','2','3','4','5','6','7','8');
$replace = array('0-9','0-9','0-9','0-9','0-9','0-9','0-9','0-9','0-9');
$dir = str_replace($search, $replace, $direction);
然后计算9,这取决于你的字符串我的是0123456789
,所以我试过了$dir = str_replace('99', '9,0-9', $dir);
它在矿山上的工作
str_replace()
:的文档中对此进行了解释
注意
收到替换订单
因为
str_replace()
从左到右进行替换,所以在进行多次替换时,它可能会替换以前插入的值。
将数组作为前两个参数传递给str_replace()
。这与对数组中的每个元素重复调用str_replace()
的方法相同。
如果$direction
不是'9'
,则它用'0-9'
替换它。然后,在最后一个循环中,它将'0-9'
中的'9'
替换为'0-9'
(根据您传递的值)。
我会把代码放在第一行后面,然后再读第一句话:"获取第一个数字并将其替换为0-9"。
如果你的目标是获得$query_row["Band"]
的第一个字符,如果它是一个数字,就用0-9
代替它(否则就变成大写),我会写一些更简单的东西:
$direction = substr($query_row["Band"], 0, 1);
if (is_numeric($direction)) {
$dir = '0-9';
} else {
$dir = strtoupper($direction);
}