Php 数组有问题吗
我用这段代码得到第一个数字,并用0-9替换它,但我总是得到0-0-9的结果。然后我在数组9中删除了它,它开始正常工作。为什么会这样Php 数组有问题吗,php,arrays,replace,Php,Arrays,Replace,我用这段代码得到第一个数字,并用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',
$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_替换('99','9,0-9',$dir)代码>
其在矿山上的工作在以下文件中进行了说明:
小心
替换订单已收到
因为str_replace()
从左到右替换,所以在执行多次替换时,它可能会替换以前插入的值
将数组作为前两个参数传递给str\u replace()
。这与对数组中的每个元素重复调用str\u replace()
相同
如果$direction
不是'9'
,则它将替换为'0-9'
。然后,在最后一个循环中,它将'0-9'
中的'9'
替换为'0-9'
(根据您传递的值)
我会把代码放在第一行之后,然后再次阅读第一句话:“获取第一个数字并用0-9替换它”
如果您的目标是获取$query\u row[“Band”]
的第一个字符,如果它是一个数字(如果是大写的话),则将其替换为0-9
,我会写一些更简单的内容:
$direction = substr($query_row["Band"], 0, 1);
if (is_numeric($direction)) {
$dir = '0-9';
} else {
$dir = strtoupper($direction);
}
移除,从arrayTypo开始$replace=[,'0'
我理解你的问题,当你替换0=>0-9
然后替换9=>0-9
这意味着0变成0-0-9搜索解决方案时,请等待我认为你在$direction
中有多个数字的问题。如果你有多个数字,它将替换所有这些数字,而不仅仅是第一个数字ne.请给出$direction
的示例和预期结果。也发布$direction
的值。与预期输出谢谢,您让我找到了解决方案。我将fist$dir更改为$direct$dir=str_replace('99','9,0-9','dir');更改为$dir=str_replace('0-9','0-9','direct);)