• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:初心者です!すいません助けてください!)

初心者のためのarray_unshift関数の使い方とは?

このQ&Aのポイント
  • 初心者のためのarray_unshift関数の使い方について解説します。
  • array_unshift関数を使って配列に要素を追加するプログラムを作成する際に、常に最初の要素が上書きされる問題が発生する場合の原因と対処方法を説明します。
  • $ssの配列にデータが追加されず、常に$ss[0]が書き換えられる理由について解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.3

$ssが次のページに送られていないからですね。 例えば hidden で $ss[0]~$ss[n] までを送るか、 implode関数で文字列に変換して渡し、受け側でexplode関数を使って配列に戻すとか工夫が必要です。 $ssの引数は連続した数値のようですから、試しに<form>の後ろに <?php for ($i=0;$i<count ($ss);$i++) print "<input type=\"hidden\" name=\"ss[$i]\" value=\"$ss[$i]\">\n"; ?> を足して動かしてみてくださいな。動作が判ると思います。 この方法はかなりスマートではありませんので、別の方法を考えるべきではありますが。

その他の回答 (2)

回答No.2

Web系のプログラムは、 (1)リクエストを受ける ↓ (2)処理をする ↓ (3)レスポンスを返す で終了してしまいます。「終了」つまり、メモリやファイルなどに特に経過を保存すること無く全てリセットされますので、変数に入れた値も全て消えます。 ですので、Tasuke22さんが仰るとおり、一度(2)のところで、自分でファイルに書き出したり、セッションでデータを維持する必要があります。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

要件が単純なプログラムにならないですよ。 セッション管理するか、途中経過をファイルに吐き出して 処理する度にファイルを読みに行くかしなければ実現出来 ないでしょう。

関連するQ&A