2009-10-26 80 views
1

我有一個包含子數組的數組。 我需要在給定的行號處拆分第一個數組,然後插入一個新行,然後將它們全部組合到原始結構中。將給定行處的數組拆分爲兩部分,插入另一行並重新加入它們

這是林與現在

$csvpre = explode("###", $data); 

$i = 0; 
$bgc = 0; 

    foreach ($csvpre AS $key => $value){ 
     $info = explode("%%", $value); 
     $i++; 
     if($i == "1"){ 
      echo "<tr bgcolor=#efefef><td></td>"; 
       foreach ($info as $key => $value){ echo "<td>$value</td>"; } 
      echo "</tr>"; 

     } else { 

      if($bgc&1) { $bgcgo = "bgcolor=\"#b9b9b9\"" ;} else { $bgcgo = "bgcolor=\"#d6d6d6\""; } 
      echo "<tr $bgcgo><td></td>"; 
      echo "<td><input type=button value=\"clone #$i\"></td>"; 
      $j = 0; 
       foreach ($info as $key => $value){ 
        $j++; 

         if($j != 8){ 
          echo "<td>$value</td>"; 
         }else{ 
          echo "<td><textarea name=ddesc[]>$value</textarea></td>"; 
         } 
       } 
      echo "</tr>"; 
      $bgc++; 
     }  
    } 

我需要什麼創建工作,是將採取$ I值的函數,例如10,並在該行拆分陣列分爲兩個部分$ arraya和$ arrayb。然後,我需要他們回來結合在一起,同時包括一個新的行...

僞代碼

$ startarray =陣列(Line0,1號線,2號線,3號線,4號線); $ splitline = 2; $ arraya = splitup($ startarray,$ splitline); $ arrayb =拆分($ startarray,$ splitline);

ArrayA然後將由Line0, Line1, Line2組成。 ArrayB將由Line3, Line4組成。然後我們運行魔術功能。

$newline = "Line2.5"; 
$newarray = somefunction($arraya, $newline, $arrayb); 

而且$ newarray那麼會是什麼樣

Line0, Line1, Line2, Line2.5, Line3, Line4 

回答

2

如果我明白你的問題正確,array_splice()能做到這一點的所有一氣呵成:

$array = array('Line0', 'Line1', 'Line2', 'Line3', 'Line4'); 
array_splice($array, 3, 0, 'Line2.5'); 
print_r($array); 

,輸出:

Array 
(
    [0] => Line0 
    [1] => Line1 
    [2] => Line2 
    [3] => Line2.5 
    [4] => Line3 
    [5] => Line4 
) 
+0

謝謝,工作正常 – mrpatg 2009-10-26 20:33:03