我正在尝试使用php读取多个数字按空格分隔的行。最初我尝试使用fscanf然而问题是,因为fscanf一次读取一行,它只读取第一个数字。我很困惑该怎么做。
示例输入 20 30 -5987 456 523
答案 0 :(得分:8)
此案例的最佳方法是使用爆炸和文件读取的组合。该策略最初作为字符串读取整行。然后使用explode将所有数字存储在数组中。但是在这种情况下,数组稍后会出现一个字符串数组,我们可以将数组元素的类型从String更改为整数。这是如何
<?php
$_fp = fopen("php://stdin", "r");
fscanf($_fp, "%d\n", $count);
$numbers = explode(" ", trim(fgets($_fp)));
foreach ($numbers as &$number)
{
$number = intval($number);
}
sort($numbers);
?>
答案 1 :(得分:0)
$input = trim(fgets(STDIN));
$arr = explode(" ", $input);
foreach($arr as &$number){
$number = (int)$number;
}
答案 2 :(得分:0)
如果你想消除&#34; fopen&#34;功能用户&#34; trim&#34;具有修剪功能的功能或环绕变量。 示例:
echo "Please enter series limit : ";
$handles = fopen ("php://stdin","r");
$n = trim(fgets($handles));
所以在这里我们可以删除字符之间以及最后的空格。