从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);