簡體   English   中英

將\\ n更改為另一個陣列中的陣列值

[英]Changing \n into ARRAY values within another ARRAY

我有這個表格發送的

Array
(
    [0] => one
two
three
    [1] => hello
how
are
)

由於值是通過表單的textarea發送的,因此它具有換行符,因此我想對每個表單進行更改
放入數組字段,如下所示:

Array
(
    [0] => Array
        (
            [0] => one
            [1] => two
            [2] => three
        )

    [1] => Array
        (
            [0] => hello
            [1] => how
            [2] => are
        )

)

這是我到目前為止的內容:

foreach ($array as &$valor) {   
    foreach(preg_split("/((\r?\n)|(\r\n?))/", $valor) as $line){
    $arraynew[] = $line;
}
}

但是我得到這個結果

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => hello
    [4] => how
    [5] => are
)

我究竟做錯了什么? :(

對於POST數組中的每個鍵,將一個值彈出到最終數組上,其中的值包含一個數組,其值代表POST數組中的每一行。

<?php
$data = array(
 0 => "one\ntwo\nthree", 
 1 => "hello\nhow\nare"
);

$final = array();
for($i = 0; $i < count($data); $i++) {
  $row = preg_split('/\n/', $data[$i]);
  if(is_array($row)) {
    for($j = 0; $j < count($row); $j++) {
      $final[$i][] = $row[$j];
    }
  }
}

var_dump($final);

array(2) {
  [0] =>
  array(3) {
    [0] =>
    string(3) "one"
    [1] =>
    string(3) "two"
    [2] =>
    string(5) "three"
  }
  [1] =>
  array(3) {
    [0] =>
    string(5) "hello"
    [1] =>
    string(3) "how"
    [2] =>
    string(3) "are"
  }
}

演示

好吧,你真的很努力。

array_map(function($e) { return explode("\n", $e); }, $orig_array);

是你所需要的全部。 如果確實需要,可以使用preg_split ,但是explode就足夠了。

你可以簡單地做到這一點

 $array=array("one\ntwo\nthree","hello\nhow\nare");
 $arraynew=array();
 foreach ($array as &$valor) {   
 $arraynewtemp=array();
 foreach(preg_split("/((\r?\n)|(\r\n?))/", $valor) as $line){
 $arraynewtemp[] = $line;
 }
 array_push($arraynew,$arraynewtemp);
 }

 var_dump($arraynew);

將輸出

 array(2) {
 [0]=>
  array(3) {
  [0]=>
   string(3) "one"
  [1]=>
   string(3) "two"
  [2]=>
   string(5) "three"
   }
 [1]=>
  array(3) {
  [0]=>
   string(5) "hello"
  [1]=>
   string(3) "how"
  [2]=>
   string(3) "are"
 }
}

這應該工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM