PHP代码
$testcases1 = explode(" ",$_POST['testcases']);
$num1 = $testcases1[0];
$num2 = $testcases1[1];
echo "count-"count($testcases1);
echo "num2-"$num2;
正确
i/p : 3 2 o/p : count-2 num2-2
我的问题
i/p : 3(just a single space) o/p : count-2 num2-
和$ num2的行为因为它的值为0我能为此做些什么......
num2可以是0到100 ...我如何实现这个
答案 0 :(得分:1)
您可以使用rtrim()
删除空格http://php.net/rtrim
$testcases1 = explode(" ",$_POST['testcases']);
$num1 = rtrim($testcases1[0], ' ');
$num2 = rtrim($testcases1[1], ' ');
echo "count-"count($testcases1);
echo "num2-"$num2;
如果2个数字之间有多个空格
$testcases1 = array_keys(array_filter(explode(' ', $_POST['testcases'])));
$num1 = rtrim($testcases1[0], ' ');
$num2 = rtrim($testcases1[1], ' ');
echo "count-"count($testcases1);
echo "num2-"$num2;
答案 1 :(得分:1)
我认为问题是您的$_POST['testcases']
包含一个尾随空格。
你应该修剪$_POST['testcases']
,以便它正确爆炸。改变你的第一行:
$testcases1 = explode(" ",trim($_POST['testcases']));
答案 2 :(得分:0)
看起来数字之间有多个空格,这会导致空格成为结果数组的一部分。
在这种情况下,最好使用preg_split()
,因为它可以拆分为正则表达式:
$testcases1 = preg_split('/\s+/',$_POST['testcases']);
这将在一个或多个空白字符(\s
)上展开字符串:空格,制表符或换行符。
如果你只想在一个或多个空格(没有标签或换行符)上爆炸,你可以使用:
$testcases1 = preg_split('/[ ]+/',$_POST['testcases']);
另一方面,如果你需要2个输入,你可能最好使用2个输入字段,因为这样可以避免这些解析问题。