2017-11-09 9 views
0

私は値を追加すると、$ _post文でPHP配列に値を追加しようとしていますが、値を追加すると、配列の要素[0]がその長さを増やすことなく置き換えられます?私は 'serialize'と 'unserialize'を使ってこれを修正しました。機能がなくても機能しませんでした。関数の配列(ポスト)に値を追加するにはどうすればよいですか?

<?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

その後、

function add($value){ global $array; $array[] = $value; } 

を使用することができ、あなたは 'グローバル$配列が必要;'あなたの関数インチ – Vivick

+0

解決済み!返信ありがとうございます! –

答えて

0

は、最も簡単な方法は、次のようになります。

function add($value){ 
    global $array; 
    $array[] = $value; 
    return $array; 
} 

あなたは以前に宣言$arrayを使用しているこの方法です。

最初は、空の配列を作成して関数に値を追加するだけで、常に1つの値が返されます。

また、$arrayはグローバル変数であるため、実際に関数から返す必要はありません。あなたは、ファイルの先頭でやったようにあなただけの

add($_POST['valor']); 

代わりの

$array = add($_POST['valor']); 
+0

3日間、コードの1行だけで私の心が壊れてしまった...ありがとう、おい! :D –

関連する問題