Получение массива из чего-то в php - PullRequest
0 голосов
/ 14 апреля 2019

Я даже не знаю, как мне назвать этот тип данных, но мне нужно извлечь из него массив.

код

$folderss = $ssh->exec($command);
$folders = explode(',', $folderss);

DD результат

array:1 [▼
  0 => """
    DO_NOT_UPLOAD_HERE\n
    domains\n
    public_html\n
    """
]

Что мне нужно

array:3 [▼
      0 => "DO_NOT_UPLOAD_HERE",
      1 =>  "domains",
      2 => "public_html",
]

есть идеи?

Обновление

Я изменил свой код на:

$folders = preg_split("/[\s,]+/", $folderss);

Теперь я получаю:

array:4 [▼
  0 => "DO_NOT_UPLOAD_HERE"
  1 => "domains"
  2 => "public_html"
  3 => ""
]

У меня есть 1 дополнительная строка, как ее удалить?

Обновление 2

Если я использую

$folders = explode("\n", $folderss);

происходит тот же результат, что и при использовании preg_split (дополнительная строка)

array:4 [▼
  0 => "DO_NOT_UPLOAD_HERE"
  1 => "domains"
  2 => "public_html"
  3 => ""
]

Ответы [ 3 ]

1 голос
/ 14 апреля 2019

Попробуйте удалить пустые значения из массива

 $folders = preg_split("/[\s,]+/", $folderss); 
 $folders=array_filter($folders);
0 голосов
/ 14 апреля 2019

Вы можете использовать array_filter, чтобы удалить пустые значения из array

$folders = array_filter(preg_split("/[\s,]+/", $folderss));
0 голосов
/ 14 апреля 2019

Заменить эту строку:

$folders = explode(',', $folderss);

на:

$folders = explode('\n', trim($folderss, '"');

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