Исключить пустое значение из входных данных, которые разбиваются на массивы в STDIN PHP - PullRequest
0 голосов
/ 01 января 2019

Я попытался разделить входные данные

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

Я получил эти два пустых значения

C:\xampp\htdocs\coding-test\Soal 1>php search.php
asd
Array
(
    [0] => a
    [1] => s
    [2] => d
    [3] =>
    [4] =>

)

В конце массива есть два добавленных пустых значения.Я считаю, что я просто ввожу 3 слова, но возвращаю 5.Откуда взялись два пустых значения?

Я получил этот тип данных, используя var_dump

C:\xampp\htdocs\coding-test\Soal 1>php search.php
asd
array(5) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "s"
  [2]=>
  string(1) "d"
  [3]=>
" string(1) "
  [4]=>
  string(1) "
"
}

Я пытался удалить его, используя array_filter, но он все равно дал мне двапустые значения.

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

1 Ответ

0 голосов
/ 01 января 2019

Вы можете попробовать обрезать свое значение перед тем, как разбить строку:

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

Кроме того, ваша попытка с array_filter не сработала, потому что эта функция удаляет все пустое, другими словами, все, чтоempty() === true.Как empty("\n") === false он не удалялся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...