Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从STDIN PHP中分割成数组的输入中排除空白值_Php_Stdin - Fatal编程技术网

从STDIN PHP中分割成数组的输入中排除空白值

从STDIN PHP中分割成数组的输入中排除空白值,php,stdin,Php,Stdin,我试图分割一个输入 <?php $hand = fgets(STDIN); $hand_convert = str_split($hand); print_r($hand_convert); ?> 数组末尾添加了两个空白值。我相信我只输入了3个单词,但它返回了5个索引。这两个空白增值从何而来 我使用var_dump获得了这种类型的数据 我试着用array_filter删除它,但它仍然给了我两个空值 <?php $hand = fgets(STDIN); $hand_conve

我试图分割一个输入

<?php
$hand = fgets(STDIN);
$hand_convert = str_split($hand);
print_r($hand_convert);
?>
数组末尾添加了两个空白值。我相信我只输入了3个单词,但它返回了5个索引。这两个空白增值从何而来

我使用var_dump获得了这种类型的数据

我试着用array_filter删除它,但它仍然给了我两个空值

<?php
$hand = fgets(STDIN);
$hand_convert = str_split($hand);
print_r(array_filter($hand_convert));
?>

您可以在拆分字符串之前尝试修剪值:

<?php
$hand = fgets(STDIN);
$hand_convert = str_split(trim($hand));
print_r($hand_convert);

另外,您尝试使用array_filter时也不起作用,因为此函数将删除所有为空的内容,换句话说,所有为空的内容===true。作为空\n===false,它没有删除。

var\u转储数组。如果存在字符串STDIN,请尝试使用修剪以删除字符串STDIN中的额外空间。@u\u mulder更新的问题因此,这些是换行符,不是空值。按照@WaqasAhmed的建议使用trim。你知道PHP为什么在STDIN中包含linbreak吗?@Gagantous这里有一个很好的解释:
<?php
$hand = fgets(STDIN);
$hand_convert = str_split($hand);
print_r(array_filter($hand_convert));
?>
<?php
$hand = fgets(STDIN);
$hand_convert = str_split(trim($hand));
print_r($hand_convert);