我试图用$ _post句子使用函数向php数组添加值。但是当我添加一个值时,这会替换数组的元素[0]而不增加它的长度,是什么我做错了?。我用过#serial; serialize'和'反序列化'解决这个问题,因为没有功能它可以工作,但现在没有。
<?php
global $array;
$array = array();
$long = count($array);
$array = unserialize($_POST["array"]);
function add($value){
$array[] = $value ;
return $array;
}
if (isset($_POST["Add"])){
$array = add($_POST['valor']);
if(count($array)>0)
{
print_r(array_values($array));
}
}
?>
<form action="" method="post">
<input type="hidden" name="array" value='<?php echo serialize($array);?>'>
Add value: <input type="text" name="valor" size="2">
<input type="submit" name= "Add" value="Añadir">
</form>
提前致谢:)
答案 0 :(得分:0)
最简单的方法是:
function add($value){
global $array;
$array[] = $value;
return $array;
}
这样您就可以使用先前声明的$array
。
最初,它只会创建一个空数组并在函数中添加您的值,因此它总是会返回一个值。
此外,由于$array
是一个全局变量,因此您不需要从函数中返回它。你可以使用
function add($value){
global $array;
$array[] = $value;
}
然后只是
add($_POST['valor']);
而不是
$array = add($_POST['valor']);