2012-02-20 10 views
5

私は電話番号を含むテキストエリアを持っています。それぞれの番号は別々の行にあります。私はこれが動作しないPHP:テキストエリアの行を別々の配列要素として分解する

explode("\n", $numbers); 

または

explode("\r\n", $numbers); 

を使用して配列にその文字列を爆発します。私を助けてください。ありがとう!

+3

を使用して、ここで何が間違っている、私に教えて? –

+1

'explode(" \ n "、$ numbers);や' explode( "\ r \ n"、$ numbers); '?あるいは、実際には両方のステートメントを同じように1つの行としてお互いに書くのですか? –

+0

もう少し多くのコード、HTMLフォーム、もう少し周囲のコードを投稿してください。 – h00ligan

答えて

6

$records = preg_split('/[\r\n]+/', $mystring, -1, PREG_SPLIT_NO_EMPTY);

これはそれを行う必要があります。

6

manualとして:文字列の配列を返します。

結果を保存する必要があります。 orはそのようには機能しません。入力に\nまたは\r\nが含まれているかどうかわからない場合は、\rを空の文字列で置き換えてから\nで爆発させることができます。

これはトリックを行う必要があります:あなたはとてもスマートであれば

$numbers = explode("\n", str_replace("\r", "", $numbers)); 
+1

もちろんそうです。ユーザーが提出したデータはシステムEOLに変換されないことがあります。コメントは撤回されました。 –

1

この

<?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 

?> 
関連する問題