我有一个充满子数组的数组。 我需要在给定的行号处拆分第一个数组,然后插入一个新行,然后将它们全部组合回原始结构。
这就是我现在正在使用的
$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 = array(Line0,Line1,Line2,Line3,Line4); $ splitline = 2; $ arraya = splitup($ startarray,$ splitline); $ arrayb = splitdown($ 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
答案 0 :(得分: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
)