我正在尝试创建一个简单的系统来添加和删除数组元素。我已经做到了,但我想知道如何在特定位置添加或删除项目。例如:我想删除数组的第二个元素并将另一个元素添加到4º位置?
我只能这样做,但要添加数组的开始或结尾。
到目前为止,这是我的代码:
<form method="post" action="<?php $_SERVER['REQUEST_URI']; ?>">
<input type="text" name="arr" /><br />
<input type="radio" name="op" value="push" /> add to the end<br />
<input type="radio" name="op" value="merge" /> add to start<br />
<input type="radio" name="op" value="pop" /> remove from the end<br />
<input type="radio" name="op" value="shift" /> remove from the start<br />
<input type="submit" value="Exec" />
</form>
<?php
if(!empty($_POST['op'])){
$op = $_POST['op'];
$marcas = $_SESSION['array'];
if($op == "push"){
array_push($marcas,$_POST['arr']);
}elseif($op == "pop"){
array_pop($marcas);
}elseif($op == "merge"){
$ar2 = array($_POST['arr']);
$marcas = array_merge($ar2,$marcas);
}else{
array_shift($marcas);
}
$_SESSION['array'] = $marcas;
}
else{
$_SESSION['array'] = array ("Fiat","Ford", "GM", "VW");
}
print_r($_SESSION['array']);
?>
答案 0 :(得分:1)
您需要使用array_splice()
来删除/添加/替换数组中任意位置的元素。
添加/删除示例:
// sample data
$a = [1, 2, 3, 4, 5];
// insert 1.5 after 1, before 2
array_splice($a, 1, 0, 1.5);
// $a is now [1, 1.5, 2, 3, 4, 5]
// remove 4
array_splice($a, 4, 1);
// $a is now [1, 1.5, 2, 3, 5]