Reputation: 101
I have a textarea that contains phone numbers, each number in a separate line. I want to explode that string into an array using
explode("\n", $numbers);
or
explode("\r\n", $numbers);
This is not working. Please, help me. Thanks!
Upvotes: 6
Views: 12694
Reputation: 4123
Use this
<?php
$input = $_POST['textarea_name'];
$new_array = array_values(array_filter(explode(PHP_EOL, $input)));
// explode -> convert textarea to php array (that lines split by new line)
// array_filter -> remove empty lines from array
// array_values -> reset keys of array
?>
Upvotes: 3
Reputation: 151604
As the manual states: Returns an array of strings.
So you'll have to store the result. The or
won't work that way either. If you don't know whether the input will contain \n
or \r\n
, you could do a replace to replace \r
by an empty string, then explode on \n
.
This should do the trick:
$numbers = explode("\n", str_replace("\r", "", $numbers));
Upvotes: 10
Reputation: 3095
$records = preg_split('/[\r\n]+/', $mystring, -1, PREG_SPLIT_NO_EMPTY);
This should do it.
Upvotes: 11