как превратить текст в массив построчно с PHP - PullRequest
4 голосов
/ 08 июля 2011
aaaaaaaaaaaa
bbbbbbbbbbbbbb
ccccccccccccccccccc
dddddddddddddddddd

Я хочу, чтобы turn представлял собой массив на основе строки

array(
0=>'aaaaaaaaaaaa',
1=>'bbbbbbbbbbbbbb',
2=>'ccccccccccccccccccc',
3=>'dddddddddddddddddd'

)

Как это сделать с помощью php?

Ответы [ 8 ]

1 голос
/ 08 июля 2011

В PHP новые строки представлены \n.Поэтому вы можете использовать explode() для создания массива после каждой новой строки.

$string = "aaaaaaaaaaa
           bbbbbbbbb
           cccccccccccccccc
           ddddddddddd"

$string = "aaaaaaaaaaa\nbbbbbbbbb\ncccccccccccccccc\nddddddddddd"

//Both $string variables are the same

//Make sure that \n is in double quotes, single quotes WILL NOT WORK!!!
$array = explode("\n", $string);

Вот и все!Не стесняйтесь использовать array_map() и другие подобные функции с \n для достижения желаемых результатов.

1 голос
/ 08 июля 2011

Следующее довольно гибко относится к окончанию строки (перевод строки или возврат каретки) или может быть изменено для включения любого пробела.

$lines = preg_split('/[\r\n]/', $text);

Однако, если вы знаете, что конец строки равен \n (новая строка), я бы порекомендовал explode(), так как это позволяет избежать затрат на регулярное выражение.

$lines = explode("\n", $text);

Подробнее о preg_split() и explode().

1 голос
/ 08 июля 2011
$arr = explode("\n", $str); // $str contains your text
1 голос
/ 08 июля 2011
$string = "aaaaaaaaaaaa 
bbbbbbbbbbbbbb 
ccccccccccccccccccc 
dddddddddddddddddd";
$array = explode("\n", $string);
1 голос
/ 08 июля 2011
$myArray = explode($your_seperator_string, $string_to_be_parsed_to_array);

Функция PHP explode(string $delimiter , string $string [, int $limit ]) делит string на delimiter.

0 голосов
/ 08 июля 2011
$output_array = explode("\n<br />\n", $input_string);
0 голосов
/ 08 июля 2011

ДЕМО

<?php

  $sample = "aaaaaaaaaaaa
bbbbbbbbbbbbbb
ccccccccccccccccccc
dddddddddddddddddd";

$ary = array_map("trim",explode("\n", $sample));

var_dump($ary);

ВЫХОД:

array(4) {
  [0]=>
  string(12) "aaaaaaaaaaaa"
  [1]=>
  string(14) "bbbbbbbbbbbbbb"
  [2]=>
  string(19) "ccccccccccccccccccc"
  [3]=>
  string(18) "dddddddddddddddddd"
}

Я использую трим в случае, если они либо \ r \n или \ n разделены.Также можно использовать регулярные выражения, но я бы предложил еще одно решение, и array_map необязательно.

0 голосов
/ 08 июля 2011

Посмотрите на метод split (). PHP: раздельное руководство

$myArray = split("[\n|\r]", $string);

В зависимости от системы, которая создала исходную строку, вам может понадобиться или не потребоваться \ r.

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